/* A Bison parser, made by GNU Bison 1.875.  */

/* Skeleton parser for Yacc-like parsing with Bison,
   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.  */

/* As a special exception, when this file is copied by Bison into a
   Bison output file, you may use that output file without restriction.
   This special exception was added by the Free Software Foundation
   in version 1.24 of Bison.  */

/* Written by Richard Stallman by simplifying the original so called
   ``semantic'' parser.  */

/* All symbols defined below should begin with yy or YY, to avoid
   infringing on user name space.  This should be done even for local
   variables, as they might otherwise be expanded by user macros.
   There are some unavoidable exceptions within include files to
   define necessary library symbols; they are noted "INFRINGES ON
   USER NAME SPACE" below.  */

/* Identify Bison output.  */
#define YYBISON 1

/* Skeleton name.  */
#define YYSKELETON_NAME "yacc.c"

/* Pure parsers.  */
#define YYPURE 0

/* Using locations.  */
#define YYLSP_NEEDED 1

/* If NAME_PREFIX is specified substitute the variables and functions
   names.  */
#define yyparse base_yyparse
#define yylex   base_yylex
#define yyerror base_yyerror
#define yylval  base_yylval
#define yychar  base_yychar
#define yydebug base_yydebug
#define yynerrs base_yynerrs
#define yylloc base_yylloc

/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum yytokentype {
     ABORT_P = 258,
     ABSOLUTE_P = 259,
     ACCESS = 260,
     ACTION = 261,
     ADD_P = 262,
     ADMIN = 263,
     AFTER = 264,
     AGGREGATE = 265,
     ALL = 266,
     ALSO = 267,
     ALTER = 268,
     ANALYSE = 269,
     ANALYZE = 270,
     AND = 271,
     ANY = 272,
     ARRAY = 273,
     AS = 274,
     ASC = 275,
     ASSERTION = 276,
     ASSIGNMENT = 277,
     ASYMMETRIC = 278,
     AT = 279,
     AUTHORIZATION = 280,
     BACKWARD = 281,
     BEFORE = 282,
     BEGIN_P = 283,
     BETWEEN = 284,
     BIGINT = 285,
     BINARY = 286,
     BIT = 287,
     BOOLEAN_P = 288,
     BOTH = 289,
     BY = 290,
     CACHE = 291,
     CALLED = 292,
     CASCADE = 293,
     CASCADED = 294,
     CASE = 295,
     CAST = 296,
     CHAIN = 297,
     CHAR_P = 298,
     CHARACTER = 299,
     CHARACTERISTICS = 300,
     CHECK = 301,
     CHECKPOINT = 302,
     CLASS = 303,
     CLOSE = 304,
     CLUSTER = 305,
     COALESCE = 306,
     COLLATE = 307,
     COLUMN = 308,
     COMMENT = 309,
     COMMIT = 310,
     COMMITTED = 311,
     CONCURRENTLY = 312,
     CONNECTION = 313,
     CONSTRAINT = 314,
     CONSTRAINTS = 315,
     CONVERSION_P = 316,
     CONVERT = 317,
     COPY = 318,
     CREATE = 319,
     CREATEDB = 320,
     CREATEROLE = 321,
     CREATEUSER = 322,
     CROSS = 323,
     CSV = 324,
     CURRENT_DATE = 325,
     CURRENT_ROLE = 326,
     CURRENT_TIME = 327,
     CURRENT_TIMESTAMP = 328,
     CURRENT_USER = 329,
     CURSOR = 330,
     CYCLE = 331,
     DATABASE = 332,
     DAY_P = 333,
     DEALLOCATE = 334,
     DEC = 335,
     DECIMAL_P = 336,
     DECLARE = 337,
     DEFAULT = 338,
     DEFAULTS = 339,
     DEFERRABLE = 340,
     DEFERRED = 341,
     DEFINER = 342,
     DELETE_P = 343,
     DELIMITER = 344,
     DELIMITERS = 345,
     DESC = 346,
     DISABLE_P = 347,
     DISTINCT = 348,
     DO = 349,
     DOMAIN_P = 350,
     DOUBLE_P = 351,
     DROP = 352,
     EACH = 353,
     ELSE = 354,
     ENABLE_P = 355,
     ENCODING = 356,
     ENCRYPTED = 357,
     END_P = 358,
     ESCAPE = 359,
     EXCEPT = 360,
     EXCLUDING = 361,
     EXCLUSIVE = 362,
     EXECUTE = 363,
     EXISTS = 364,
     EXPLAIN = 365,
     EXTERNAL = 366,
     EXTRACT = 367,
     FALSE_P = 368,
     FETCH = 369,
     FIRST_P = 370,
     FLOAT_P = 371,
     FOR = 372,
     FORCE = 373,
     FOREIGN = 374,
     FORWARD = 375,
     FREEZE = 376,
     FROM = 377,
     FULL = 378,
     FUNCTION = 379,
     GLOBAL = 380,
     GRANT = 381,
     GRANTED = 382,
     GREATEST = 383,
     GROUP_P = 384,
     HANDLER = 385,
     HAVING = 386,
     HEADER_P = 387,
     HOLD = 388,
     HOUR_P = 389,
     IF_P = 390,
     ILIKE = 391,
     IMMEDIATE = 392,
     IMMUTABLE = 393,
     IMPLICIT_P = 394,
     IN_P = 395,
     INCLUDING = 396,
     INCREMENT = 397,
     INDEX = 398,
     INDEXES = 399,
     INHERIT = 400,
     INHERITS = 401,
     INITIALLY = 402,
     INNER_P = 403,
     INOUT = 404,
     INPUT_P = 405,
     INSENSITIVE = 406,
     INSERT = 407,
     INSTEAD = 408,
     INT_P = 409,
     INTEGER = 410,
     INTERSECT = 411,
     INTERVAL = 412,
     INTO = 413,
     INVOKER = 414,
     IS = 415,
     ISNULL = 416,
     ISOLATION = 417,
     JOIN = 418,
     KEY = 419,
     LANCOMPILER = 420,
     LANGUAGE = 421,
     LARGE_P = 422,
     LAST_P = 423,
     LEADING = 424,
     LEAST = 425,
     LEFT = 426,
     LEVEL = 427,
     LIKE = 428,
     LIMIT = 429,
     LISTEN = 430,
     LOAD = 431,
     LOCAL = 432,
     LOCALTIME = 433,
     LOCALTIMESTAMP = 434,
     LOCATION = 435,
     LOCK_P = 436,
     LOGIN_P = 437,
     MATCH = 438,
     MAXVALUE = 439,
     MINUTE_P = 440,
     MINVALUE = 441,
     MODE = 442,
     MONTH_P = 443,
     MOVE = 444,
     NAMES = 445,
     NATIONAL = 446,
     NATURAL = 447,
     NCHAR = 448,
     NEW = 449,
     NEXT = 450,
     NO = 451,
     NOCREATEDB = 452,
     NOCREATEROLE = 453,
     NOCREATEUSER = 454,
     NOINHERIT = 455,
     NOLOGIN_P = 456,
     NONE = 457,
     NOSUPERUSER = 458,
     NOT = 459,
     NOTHING = 460,
     NOTIFY = 461,
     NOTNULL = 462,
     NOWAIT = 463,
     NULL_P = 464,
     NULLIF = 465,
     NUMERIC = 466,
     OBJECT_P = 467,
     OF = 468,
     OFF = 469,
     OFFSET = 470,
     OIDS = 471,
     OLD = 472,
     ON = 473,
     ONLY = 474,
     OPERATOR = 475,
     OPTION = 476,
     OR = 477,
     ORDER = 478,
     OUT_P = 479,
     OUTER_P = 480,
     OVERLAPS = 481,
     OVERLAY = 482,
     OWNED = 483,
     OWNER = 484,
     PARTIAL = 485,
     PASSWORD = 486,
     PLACING = 487,
     POSITION = 488,
     PRECISION = 489,
     PRESERVE = 490,
     PREPARE = 491,
     PREPARED = 492,
     PRIMARY = 493,
     PRIOR = 494,
     PRIVILEGES = 495,
     PROCEDURAL = 496,
     PROCEDURE = 497,
     QUOTE = 498,
     READ = 499,
     REAL = 500,
     REASSIGN = 501,
     RECHECK = 502,
     REFERENCES = 503,
     REINDEX = 504,
     RELATIVE_P = 505,
     RELEASE = 506,
     RENAME = 507,
     REPEATABLE = 508,
     REPLACE = 509,
     RESET = 510,
     RESTART = 511,
     RESTRICT = 512,
     RETURNING = 513,
     RETURNS = 514,
     REVOKE = 515,
     RIGHT = 516,
     ROLE = 517,
     ROLLBACK = 518,
     ROW = 519,
     ROWS = 520,
     RULE = 521,
     SAVEPOINT = 522,
     SCHEMA = 523,
     SCROLL = 524,
     SECOND_P = 525,
     SECURITY = 526,
     SELECT = 527,
     SEQUENCE = 528,
     SERIALIZABLE = 529,
     SESSION = 530,
     SESSION_USER = 531,
     SET = 532,
     SETOF = 533,
     SHARE = 534,
     SHOW = 535,
     SIMILAR = 536,
     SIMPLE = 537,
     SMALLINT = 538,
     SOME = 539,
     STABLE = 540,
     START = 541,
     STATEMENT = 542,
     STATISTICS = 543,
     STDIN = 544,
     STDOUT = 545,
     STORAGE = 546,
     STRICT_P = 547,
     SUBSTRING = 548,
     SUPERUSER_P = 549,
     SYMMETRIC = 550,
     SYSID = 551,
     SYSTEM_P = 552,
     TABLE = 553,
     TABLESPACE = 554,
     TEMP = 555,
     TEMPLATE = 556,
     TEMPORARY = 557,
     THEN = 558,
     TIME = 559,
     TIMESTAMP = 560,
     TO = 561,
     TRAILING = 562,
     TRANSACTION = 563,
     TREAT = 564,
     TRIGGER = 565,
     TRIM = 566,
     TRUE_P = 567,
     TRUNCATE = 568,
     TRUSTED = 569,
     TYPE_P = 570,
     UNCOMMITTED = 571,
     UNENCRYPTED = 572,
     UNION = 573,
     UNIQUE = 574,
     UNKNOWN = 575,
     UNLISTEN = 576,
     UNTIL = 577,
     UPDATE = 578,
     USER = 579,
     USING = 580,
     VACUUM = 581,
     VALID = 582,
     VALIDATOR = 583,
     VALUES = 584,
     VARCHAR = 585,
     VARYING = 586,
     VERBOSE = 587,
     VIEW = 588,
     VOLATILE = 589,
     WHEN = 590,
     WHERE = 591,
     WITH = 592,
     WITHOUT = 593,
     WORK = 594,
     WRITE = 595,
     YEAR_P = 596,
     ZONE = 597,
     WITH_CASCADED = 598,
     WITH_LOCAL = 599,
     WITH_CHECK = 600,
     IDENT = 601,
     FCONST = 602,
     SCONST = 603,
     BCONST = 604,
     XCONST = 605,
     Op = 606,
     ICONST = 607,
     PARAM = 608,
     POSTFIXOP = 609,
     UMINUS = 610,
     TYPECAST = 611
   };
#endif
#define ABORT_P 258
#define ABSOLUTE_P 259
#define ACCESS 260
#define ACTION 261
#define ADD_P 262
#define ADMIN 263
#define AFTER 264
#define AGGREGATE 265
#define ALL 266
#define ALSO 267
#define ALTER 268
#define ANALYSE 269
#define ANALYZE 270
#define AND 271
#define ANY 272
#define ARRAY 273
#define AS 274
#define ASC 275
#define ASSERTION 276
#define ASSIGNMENT 277
#define ASYMMETRIC 278
#define AT 279
#define AUTHORIZATION 280
#define BACKWARD 281
#define BEFORE 282
#define BEGIN_P 283
#define BETWEEN 284
#define BIGINT 285
#define BINARY 286
#define BIT 287
#define BOOLEAN_P 288
#define BOTH 289
#define BY 290
#define CACHE 291
#define CALLED 292
#define CASCADE 293
#define CASCADED 294
#define CASE 295
#define CAST 296
#define CHAIN 297
#define CHAR_P 298
#define CHARACTER 299
#define CHARACTERISTICS 300
#define CHECK 301
#define CHECKPOINT 302
#define CLASS 303
#define CLOSE 304
#define CLUSTER 305
#define COALESCE 306
#define COLLATE 307
#define COLUMN 308
#define COMMENT 309
#define COMMIT 310
#define COMMITTED 311
#define CONCURRENTLY 312
#define CONNECTION 313
#define CONSTRAINT 314
#define CONSTRAINTS 315
#define CONVERSION_P 316
#define CONVERT 317
#define COPY 318
#define CREATE 319
#define CREATEDB 320
#define CREATEROLE 321
#define CREATEUSER 322
#define CROSS 323
#define CSV 324
#define CURRENT_DATE 325
#define CURRENT_ROLE 326
#define CURRENT_TIME 327
#define CURRENT_TIMESTAMP 328
#define CURRENT_USER 329
#define CURSOR 330
#define CYCLE 331
#define DATABASE 332
#define DAY_P 333
#define DEALLOCATE 334
#define DEC 335
#define DECIMAL_P 336
#define DECLARE 337
#define DEFAULT 338
#define DEFAULTS 339
#define DEFERRABLE 340
#define DEFERRED 341
#define DEFINER 342
#define DELETE_P 343
#define DELIMITER 344
#define DELIMITERS 345
#define DESC 346
#define DISABLE_P 347
#define DISTINCT 348
#define DO 349
#define DOMAIN_P 350
#define DOUBLE_P 351
#define DROP 352
#define EACH 353
#define ELSE 354
#define ENABLE_P 355
#define ENCODING 356
#define ENCRYPTED 357
#define END_P 358
#define ESCAPE 359
#define EXCEPT 360
#define EXCLUDING 361
#define EXCLUSIVE 362
#define EXECUTE 363
#define EXISTS 364
#define EXPLAIN 365
#define EXTERNAL 366
#define EXTRACT 367
#define FALSE_P 368
#define FETCH 369
#define FIRST_P 370
#define FLOAT_P 371
#define FOR 372
#define FORCE 373
#define FOREIGN 374
#define FORWARD 375
#define FREEZE 376
#define FROM 377
#define FULL 378
#define FUNCTION 379
#define GLOBAL 380
#define GRANT 381
#define GRANTED 382
#define GREATEST 383
#define GROUP_P 384
#define HANDLER 385
#define HAVING 386
#define HEADER_P 387
#define HOLD 388
#define HOUR_P 389
#define IF_P 390
#define ILIKE 391
#define IMMEDIATE 392
#define IMMUTABLE 393
#define IMPLICIT_P 394
#define IN_P 395
#define INCLUDING 396
#define INCREMENT 397
#define INDEX 398
#define INDEXES 399
#define INHERIT 400
#define INHERITS 401
#define INITIALLY 402
#define INNER_P 403
#define INOUT 404
#define INPUT_P 405
#define INSENSITIVE 406
#define INSERT 407
#define INSTEAD 408
#define INT_P 409
#define INTEGER 410
#define INTERSECT 411
#define INTERVAL 412
#define INTO 413
#define INVOKER 414
#define IS 415
#define ISNULL 416
#define ISOLATION 417
#define JOIN 418
#define KEY 419
#define LANCOMPILER 420
#define LANGUAGE 421
#define LARGE_P 422
#define LAST_P 423
#define LEADING 424
#define LEAST 425
#define LEFT 426
#define LEVEL 427
#define LIKE 428
#define LIMIT 429
#define LISTEN 430
#define LOAD 431
#define LOCAL 432
#define LOCALTIME 433
#define LOCALTIMESTAMP 434
#define LOCATION 435
#define LOCK_P 436
#define LOGIN_P 437
#define MATCH 438
#define MAXVALUE 439
#define MINUTE_P 440
#define MINVALUE 441
#define MODE 442
#define MONTH_P 443
#define MOVE 444
#define NAMES 445
#define NATIONAL 446
#define NATURAL 447
#define NCHAR 448
#define NEW 449
#define NEXT 450
#define NO 451
#define NOCREATEDB 452
#define NOCREATEROLE 453
#define NOCREATEUSER 454
#define NOINHERIT 455
#define NOLOGIN_P 456
#define NONE 457
#define NOSUPERUSER 458
#define NOT 459
#define NOTHING 460
#define NOTIFY 461
#define NOTNULL 462
#define NOWAIT 463
#define NULL_P 464
#define NULLIF 465
#define NUMERIC 466
#define OBJECT_P 467
#define OF 468
#define OFF 469
#define OFFSET 470
#define OIDS 471
#define OLD 472
#define ON 473
#define ONLY 474
#define OPERATOR 475
#define OPTION 476
#define OR 477
#define ORDER 478
#define OUT_P 479
#define OUTER_P 480
#define OVERLAPS 481
#define OVERLAY 482
#define OWNED 483
#define OWNER 484
#define PARTIAL 485
#define PASSWORD 486
#define PLACING 487
#define POSITION 488
#define PRECISION 489
#define PRESERVE 490
#define PREPARE 491
#define PREPARED 492
#define PRIMARY 493
#define PRIOR 494
#define PRIVILEGES 495
#define PROCEDURAL 496
#define PROCEDURE 497
#define QUOTE 498
#define READ 499
#define REAL 500
#define REASSIGN 501
#define RECHECK 502
#define REFERENCES 503
#define REINDEX 504
#define RELATIVE_P 505
#define RELEASE 506
#define RENAME 507
#define REPEATABLE 508
#define REPLACE 509
#define RESET 510
#define RESTART 511
#define RESTRICT 512
#define RETURNING 513
#define RETURNS 514
#define REVOKE 515
#define RIGHT 516
#define ROLE 517
#define ROLLBACK 518
#define ROW 519
#define ROWS 520
#define RULE 521
#define SAVEPOINT 522
#define SCHEMA 523
#define SCROLL 524
#define SECOND_P 525
#define SECURITY 526
#define SELECT 527
#define SEQUENCE 528
#define SERIALIZABLE 529
#define SESSION 530
#define SESSION_USER 531
#define SET 532
#define SETOF 533
#define SHARE 534
#define SHOW 535
#define SIMILAR 536
#define SIMPLE 537
#define SMALLINT 538
#define SOME 539
#define STABLE 540
#define START 541
#define STATEMENT 542
#define STATISTICS 543
#define STDIN 544
#define STDOUT 545
#define STORAGE 546
#define STRICT_P 547
#define SUBSTRING 548
#define SUPERUSER_P 549
#define SYMMETRIC 550
#define SYSID 551
#define SYSTEM_P 552
#define TABLE 553
#define TABLESPACE 554
#define TEMP 555
#define TEMPLATE 556
#define TEMPORARY 557
#define THEN 558
#define TIME 559
#define TIMESTAMP 560
#define TO 561
#define TRAILING 562
#define TRANSACTION 563
#define TREAT 564
#define TRIGGER 565
#define TRIM 566
#define TRUE_P 567
#define TRUNCATE 568
#define TRUSTED 569
#define TYPE_P 570
#define UNCOMMITTED 571
#define UNENCRYPTED 572
#define UNION 573
#define UNIQUE 574
#define UNKNOWN 575
#define UNLISTEN 576
#define UNTIL 577
#define UPDATE 578
#define USER 579
#define USING 580
#define VACUUM 581
#define VALID 582
#define VALIDATOR 583
#define VALUES 584
#define VARCHAR 585
#define VARYING 586
#define VERBOSE 587
#define VIEW 588
#define VOLATILE 589
#define WHEN 590
#define WHERE 591
#define WITH 592
#define WITHOUT 593
#define WORK 594
#define WRITE 595
#define YEAR_P 596
#define ZONE 597
#define WITH_CASCADED 598
#define WITH_LOCAL 599
#define WITH_CHECK 600
#define IDENT 601
#define FCONST 602
#define SCONST 603
#define BCONST 604
#define XCONST 605
#define Op 606
#define ICONST 607
#define PARAM 608
#define POSTFIXOP 609
#define UMINUS 610
#define TYPECAST 611




/* Copy the first part of user declarations.  */
#line 1 "gram.y"


/*#define YYDEBUG 1*/
/*-------------------------------------------------------------------------
 *
 * gram.y
 *	  POSTGRES SQL YACC rules/actions
 *
 * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 *
 * IDENTIFICATION
 *	  $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.568 2006/11/05 22:42:09 tgl Exp $
 *
 * HISTORY
 *	  AUTHOR			DATE			MAJOR EVENT
 *	  Andrew Yu			Sept, 1994		POSTQUEL to SQL conversion
 *	  Andrew Yu			Oct, 1994		lispy code conversion
 *
 * NOTES
 *	  CAPITALS are used to represent terminal symbols.
 *	  non-capitals are used to represent non-terminals.
 *	  SQL92-specific syntax is separated from plain SQL/Postgres syntax
 *	  to help isolate the non-extensible portions of the parser.
 *
 *	  In general, nothing in this file should initiate database accesses
 *	  nor depend on changeable state (such as SET variables).  If you do
 *	  database accesses, your code will fail when we have aborted the
 *	  current transaction and are just parsing commands to find the next
 *	  ROLLBACK or COMMIT.  If you make use of SET variables, then you
 *	  will do the wrong thing in multi-query strings like this:
 *			SET SQL_inheritance TO off; SELECT * FROM foo;
 *	  because the entire string is parsed by gram.y before the SET gets
 *	  executed.  Anything that depends on the database or changeable state
 *	  should be handled inside parse_analyze() so that it happens at the
 *	  right time not the wrong time.  The handling of SQL_inheritance is
 *	  a good example.
 *
 * WARNINGS
 *	  If you use a list, make sure the datum is a node so that the printing
 *	  routines work.
 *
 *	  Sometimes we assign constants to makeStrings. Make sure we don't free
 *	  those.
 *
 *-------------------------------------------------------------------------
 */
#include "postgres.h"

#include <ctype.h>
#include <limits.h>

#include "catalog/index.h"
#include "catalog/namespace.h"
#include "commands/defrem.h"
#include "nodes/makefuncs.h"
#include "parser/gramparse.h"
#include "storage/lmgr.h"
#include "utils/date.h"
#include "utils/datetime.h"
#include "utils/numeric.h"


/* Location tracking support --- simpler than bison's default */
#define YYLLOC_DEFAULT(Current, Rhs, N) \
	do { \
		if (N) \
			(Current) = (Rhs)[1]; \
		else \
			(Current) = (Rhs)[0]; \
	} while (0)

/*
 * The %name-prefix option below will make bison call base_yylex, but we
 * really want it to call filtered_base_yylex (see parser.c).
 */
#define base_yylex filtered_base_yylex

extern List *parsetree;			/* final parse result is delivered here */

static bool QueryIsRule = FALSE;

/*
 * If you need access to certain yacc-generated variables and find that
 * they're static by default, uncomment the next line.  (this is not a
 * problem, yet.)
 */
/*#define __YYSCLASS*/

static Node *makeColumnRef(char *relname, List *indirection, int location);
static Node *makeTypeCast(Node *arg, TypeName *typename);
static Node *makeStringConst(char *str, TypeName *typename);
static Node *makeIntConst(int val);
static Node *makeFloatConst(char *str);
static Node *makeAConst(Value *v);
static A_Const *makeBoolAConst(bool state);
static FuncCall *makeOverlaps(List *largs, List *rargs, int location);
static void check_qualified_name(List *names);
static List *check_func_name(List *names);
static List *extractArgTypes(List *parameters);
static SelectStmt *findLeftmostSelect(SelectStmt *node);
static void insertSelectOptions(SelectStmt *stmt,
								List *sortClause, List *lockingClause,
								Node *limitOffset, Node *limitCount);
static Node *makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg);
static Node *doNegate(Node *n, int location);
static void doNegateFloat(Value *v);



/* Enabling traces.  */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif

/* Enabling verbose error messages.  */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 0
#endif

#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 116 "gram.y"
typedef union YYSTYPE {
	int					ival;
	char				chr;
	char				*str;
	const char			*keyword;
	bool				boolean;
	JoinType			jtype;
	DropBehavior		dbehavior;
	OnCommitAction		oncommit;
	List				*list;
	Node				*node;
	Value				*value;
	ObjectType			objtype;

	TypeName			*typnam;
	FunctionParameter   *fun_param;
	FunctionParameterMode fun_param_mode;
	FuncWithArgs		*funwithargs;
	DefElem				*defelt;
	SortBy				*sortby;
	JoinExpr			*jexpr;
	IndexElem			*ielem;
	Alias				*alias;
	RangeVar			*range;
	A_Indices			*aind;
	ResTarget			*target;
	PrivTarget			*privtarget;

	InsertStmt			*istmt;
	VariableSetStmt		*vsetstmt;
} YYSTYPE;
/* Line 191 of yacc.c.  */
#line 939 "y.tab.c"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif

#if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
typedef struct YYLTYPE
{
  int first_line;
  int first_column;
  int last_line;
  int last_column;
} YYLTYPE;
# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
# define YYLTYPE_IS_DECLARED 1
# define YYLTYPE_IS_TRIVIAL 1
#endif


/* Copy the second part of user declarations.  */


/* Line 214 of yacc.c.  */
#line 963 "y.tab.c"

#if ! defined (yyoverflow) || YYERROR_VERBOSE

/* The parser invokes alloca or malloc; define the necessary symbols.  */

# if YYSTACK_USE_ALLOCA
#  define YYSTACK_ALLOC alloca
# else
#  ifndef YYSTACK_USE_ALLOCA
#   if defined (alloca) || defined (_ALLOCA_H)
#    define YYSTACK_ALLOC alloca
#   else
#    ifdef __GNUC__
#     define YYSTACK_ALLOC __builtin_alloca
#    endif
#   endif
#  endif
# endif

# ifdef YYSTACK_ALLOC
   /* Pacify GCC's `empty if-body' warning. */
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# else
#  if defined (__STDC__) || defined (__cplusplus)
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#   define YYSIZE_T size_t
#  endif
#  define YYSTACK_ALLOC malloc
#  define YYSTACK_FREE free
# endif
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */


#if (! defined (yyoverflow) \
     && (! defined (__cplusplus) \
	 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))

/* A type that is properly aligned for any stack member.  */
union yyalloc
{
  short yyss;
  YYSTYPE yyvs;
    YYLTYPE yyls;
};

/* The size of the maximum gap between one aligned stack and the next.  */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)

/* The size of an array large to enough to hold all stacks, each with
   N elements.  */
# define YYSTACK_BYTES(N) \
     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))	\
      + 2 * YYSTACK_GAP_MAXIMUM)

/* Copy COUNT objects from FROM to TO.  The source and destination do
   not overlap.  */
# ifndef YYCOPY
#  if 1 < __GNUC__
#   define YYCOPY(To, From, Count) \
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
#  else
#   define YYCOPY(To, From, Count)		\
      do					\
	{					\
	  register YYSIZE_T yyi;		\
	  for (yyi = 0; yyi < (Count); yyi++)	\
	    (To)[yyi] = (From)[yyi];		\
	}					\
      while (0)
#  endif
# endif

/* Relocate STACK from its old location to the new one.  The
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
   elements in the stack, and YYPTR gives the new location of the
   stack.  Advance YYPTR to a properly aligned location for the next
   stack.  */
# define YYSTACK_RELOCATE(Stack)					\
    do									\
      {									\
	YYSIZE_T yynewbytes;						\
	YYCOPY (&yyptr->Stack, Stack, yysize);				\
	Stack = &yyptr->Stack;						\
	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
	yyptr += yynewbytes / sizeof (*yyptr);				\
      }									\
    while (0)

#endif

#if defined (__STDC__) || defined (__cplusplus)
   typedef signed char yysigned_char;
#else
   typedef short yysigned_char;
#endif

/* YYFINAL -- State number of the termination state. */
#define YYFINAL  571
/* YYLAST -- Last index in YYTABLE.  */
#define YYLAST   41009

/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS  374
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS  409
/* YYNRULES -- Number of rules. */
#define YYNRULES  1681
/* YYNRULES -- Number of states. */
#define YYNSTATES  2978

/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
#define YYUNDEFTOK  2
#define YYMAXUTOK   611

#define YYTRANSLATE(YYX) 						\
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
static const unsigned short yytranslate[] =
{
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,   362,     2,     2,
     367,   368,   360,   358,   372,   359,   370,   361,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,   373,   371,
     355,   354,   356,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,   365,     2,   366,   363,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   357,
     364,   369
};

#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
   YYRHS.  */
static const unsigned short yyprhs[] =
{
       0,     0,     3,     5,     9,    11,    13,    15,    17,    19,
      21,    23,    25,    27,    29,    31,    33,    35,    37,    39,
      41,    43,    45,    47,    49,    51,    53,    55,    57,    59,
      61,    63,    65,    67,    69,    71,    73,    75,    77,    79,
      81,    83,    85,    87,    89,    91,    93,    95,    97,    99,
     101,   103,   105,   107,   109,   111,   113,   115,   117,   119,
     121,   123,   125,   127,   129,   131,   133,   135,   137,   139,
     141,   143,   145,   147,   149,   151,   153,   155,   157,   159,
     161,   163,   165,   167,   169,   171,   173,   175,   177,   179,
     181,   182,   188,   190,   191,   194,   195,   198,   201,   205,
     209,   211,   213,   215,   217,   219,   221,   223,   225,   227,
     229,   231,   233,   237,   241,   244,   247,   250,   253,   257,
     261,   267,   273,   279,   284,   290,   296,   301,   305,   311,
     315,   321,   327,   334,   336,   338,   342,   348,   355,   360,
     362,   363,   366,   367,   369,   371,   373,   375,   377,   379,
     382,   386,   390,   394,   398,   402,   405,   411,   414,   417,
     421,   425,   427,   431,   433,   435,   437,   441,   443,   445,
     447,   450,   453,   456,   458,   460,   462,   464,   466,   468,
     470,   474,   481,   483,   485,   487,   489,   491,   492,   494,
     496,   499,   503,   508,   512,   515,   518,   522,   527,   531,
     534,   539,   541,   543,   545,   547,   549,   554,   559,   561,
     565,   569,   574,   581,   588,   595,   602,   607,   614,   617,
     622,   626,   630,   634,   638,   642,   646,   650,   654,   658,
     661,   665,   667,   669,   673,   677,   681,   684,   687,   691,
     694,   696,   698,   699,   702,   703,   706,   717,   724,   726,
     728,   730,   732,   734,   737,   738,   740,   742,   746,   750,
     752,   754,   758,   762,   766,   771,   773,   774,   777,   778,
     782,   783,   785,   786,   798,   811,   813,   815,   818,   821,
     824,   827,   828,   830,   831,   833,   837,   839,   841,   843,
     847,   850,   851,   855,   857,   859,   862,   864,   868,   873,
     878,   881,   887,   889,   892,   895,   898,   902,   905,   906,
     909,   912,   915,   918,   921,   924,   928,   930,   935,   942,
     950,   962,   966,   967,   969,   973,   975,   978,   981,   984,
     985,   987,   989,   992,   995,   996,  1000,  1004,  1007,  1009,
    1011,  1014,  1017,  1022,  1023,  1026,  1029,  1032,  1033,  1037,
    1042,  1047,  1048,  1051,  1052,  1057,  1058,  1069,  1073,  1074,
    1076,  1080,  1082,  1088,  1093,  1096,  1097,  1100,  1102,  1105,
    1109,  1112,  1115,  1118,  1121,  1125,  1129,  1133,  1135,  1136,
    1138,  1140,  1142,  1145,  1147,  1153,  1163,  1165,  1166,  1168,
    1171,  1174,  1175,  1178,  1179,  1185,  1193,  1195,  1196,  1203,
    1206,  1207,  1211,  1217,  1232,  1252,  1254,  1256,  1258,  1262,
    1268,  1270,  1272,  1274,  1278,  1279,  1281,  1282,  1284,  1286,
    1288,  1292,  1293,  1295,  1297,  1299,  1301,  1303,  1305,  1308,
    1309,  1311,  1314,  1316,  1319,  1320,  1323,  1325,  1328,  1331,
    1338,  1347,  1356,  1361,  1367,  1372,  1377,  1382,  1386,  1394,
    1398,  1400,  1404,  1408,  1410,  1412,  1414,  1416,  1418,  1420,
    1422,  1426,  1430,  1432,  1436,  1440,  1442,  1446,  1450,  1463,
    1465,  1469,  1474,  1482,  1487,  1490,  1492,  1493,  1495,  1496,
    1504,  1514,  1520,  1527,  1534,  1539,  1541,  1543,  1545,  1547,
    1549,  1551,  1553,  1555,  1557,  1561,  1563,  1566,  1569,  1573,
    1578,  1585,  1593,  1601,  1611,  1620,  1629,  1636,  1645,  1655,
    1663,  1674,  1682,  1684,  1686,  1688,  1690,  1692,  1694,  1696,
    1698,  1700,  1702,  1704,  1706,  1708,  1710,  1715,  1718,  1723,
    1726,  1727,  1729,  1731,  1733,  1735,  1738,  1741,  1743,  1745,
    1747,  1750,  1753,  1755,  1758,  1761,  1763,  1765,  1773,  1781,
    1792,  1794,  1796,  1799,  1801,  1805,  1807,  1809,  1811,  1813,
    1815,  1818,  1821,  1824,  1827,  1830,  1833,  1836,  1838,  1842,
    1844,  1847,  1851,  1852,  1854,  1858,  1861,  1868,  1875,  1885,
    1889,  1890,  1894,  1895,  1909,  1924,  1926,  1927,  1930,  1931,
    1933,  1937,  1940,  1943,  1948,  1950,  1953,  1954,  1964,  1972,
    1975,  1976,  1980,  1983,  1985,  1989,  1993,  1997,  2000,  2003,
    2005,  2007,  2009,  2011,  2014,  2016,  2018,  2020,  2025,  2031,
    2033,  2036,  2041,  2047,  2049,  2051,  2053,  2055,  2059,  2063,
    2066,  2069,  2072,  2075,  2077,  2079,  2083,  2086,  2087,  2093,
    2095,  2098,  2100,  2101,  2107,  2115,  2121,  2129,  2137,  2147,
    2149,  2153,  2157,  2161,  2163,  2167,  2179,  2190,  2193,  2196,
    2197,  2207,  2210,  2211,  2216,  2221,  2226,  2228,  2230,  2232,
    2233,  2241,  2248,  2255,  2263,  2270,  2277,  2287,  2294,  2301,
    2308,  2317,  2326,  2333,  2340,  2347,  2349,  2350,  2358,  2365,
    2373,  2380,  2387,  2394,  2402,  2409,  2416,  2423,  2431,  2441,
    2451,  2458,  2465,  2472,  2473,  2488,  2490,  2492,  2496,  2500,
    2502,  2504,  2506,  2508,  2510,  2512,  2514,  2515,  2517,  2519,
    2521,  2523,  2525,  2527,  2528,  2535,  2544,  2547,  2550,  2553,
    2556,  2559,  2563,  2567,  2570,  2573,  2576,  2579,  2583,  2586,
    2592,  2597,  2601,  2605,  2609,  2611,  2613,  2614,  2618,  2621,
    2624,  2626,  2630,  2633,  2635,  2636,  2645,  2656,  2659,  2663,
    2667,  2668,  2671,  2677,  2680,  2681,  2685,  2689,  2693,  2697,
    2701,  2705,  2709,  2713,  2717,  2722,  2726,  2730,  2732,  2733,
    2739,  2745,  2750,  2753,  2754,  2759,  2763,  2769,  2776,  2781,
    2788,  2795,  2801,  2809,  2811,  2812,  2823,  2828,  2831,  2833,
    2838,  2844,  2850,  2853,  2858,  2860,  2862,  2864,  2865,  2867,
    2868,  2870,  2871,  2875,  2876,  2881,  2883,  2885,  2887,  2889,
    2891,  2893,  2895,  2896,  2902,  2906,  2907,  2909,  2913,  2915,
    2917,  2919,  2921,  2925,  2938,  2942,  2943,  2946,  2950,  2956,
    2958,  2963,  2966,  2968,  2972,  2975,  2978,  2979,  2986,  2989,
    2990,  2996,  3000,  3001,  3004,  3007,  3010,  3014,  3016,  3020,
    3022,  3025,  3027,  3028,  3036,  3038,  3042,  3044,  3046,  3050,
    3056,  3059,  3061,  3065,  3073,  3074,  3078,  3081,  3084,  3087,
    3088,  3091,  3094,  3096,  3098,  3102,  3106,  3108,  3111,  3116,
    3121,  3123,  3125,  3134,  3136,  3141,  3146,  3151,  3154,  3155,
    3159,  3163,  3168,  3173,  3178,  3183,  3186,  3188,  3190,  3191,
    3193,  3195,  3196,  3198,  3204,  3206,  3207,  3209,  3210,  3214,
    3216,  3220,  3224,  3227,  3230,  3232,  3237,  3242,  3245,  3248,
    3253,  3255,  3256,  3258,  3260,  3262,  3266,  3267,  3270,  3271,
    3273,  3277,  3279,  3280,  3282,  3285,  3290,  3295,  3298,  3299,
    3302,  3306,  3309,  3310,  3312,  3316,  3318,  3321,  3323,  3326,
    3332,  3339,  3345,  3347,  3350,  3352,  3357,  3361,  3366,  3372,
    3377,  3383,  3388,  3394,  3397,  3402,  3404,  3407,  3410,  3413,
    3415,  3417,  3418,  3423,  3426,  3428,  3431,  3434,  3439,  3441,
    3444,  3448,  3450,  3453,  3454,  3456,  3460,  3463,  3466,  3470,
    3476,  3483,  3487,  3492,  3493,  3495,  3497,  3499,  3501,  3503,
    3506,  3512,  3515,  3517,  3519,  3521,  3523,  3525,  3527,  3529,
    3531,  3533,  3535,  3537,  3540,  3543,  3546,  3549,  3552,  3554,
    3558,  3559,  3565,  3569,  3570,  3576,  3580,  3581,  3583,  3585,
    3587,  3589,  3595,  3598,  3600,  3602,  3604,  3606,  3612,  3615,
    3618,  3621,  3623,  3627,  3631,  3634,  3636,  3637,  3641,  3642,
    3648,  3651,  3657,  3660,  3662,  3666,  3670,  3671,  3673,  3675,
    3677,  3679,  3681,  3683,  3687,  3691,  3695,  3699,  3703,  3707,
    3711,  3712,  3714,  3718,  3724,  3727,  3730,  3734,  3738,  3742,
    3746,  3750,  3754,  3758,  3762,  3766,  3770,  3773,  3776,  3780,
    3784,  3787,  3791,  3797,  3802,  3809,  3813,  3819,  3824,  3831,
    3836,  3843,  3849,  3857,  3861,  3864,  3869,  3872,  3876,  3880,
    3885,  3889,  3894,  3898,  3903,  3909,  3916,  3923,  3931,  3938,
    3946,  3953,  3961,  3965,  3970,  3975,  3982,  3985,  3987,  3991,
    3994,  3997,  4001,  4005,  4009,  4013,  4017,  4021,  4025,  4029,
    4033,  4037,  4040,  4043,  4049,  4056,  4063,  4071,  4073,  4075,
    4078,  4083,  4085,  4087,  4089,  4092,  4095,  4098,  4100,  4104,
    4109,  4115,  4121,  4126,  4128,  4130,  4135,  4137,  4142,  4144,
    4149,  4151,  4156,  4158,  4160,  4162,  4164,  4171,  4176,  4181,
    4186,  4191,  4198,  4204,  4210,  4216,  4221,  4228,  4233,  4240,
    4245,  4250,  4255,  4260,  4264,  4270,  4272,  4274,  4276,  4278,
    4280,  4282,  4284,  4286,  4288,  4290,  4292,  4294,  4296,  4298,
    4300,  4305,  4307,  4312,  4314,  4319,  4321,  4324,  4326,  4329,
    4331,  4335,  4339,  4340,  4344,  4346,  4348,  4352,  4356,  4360,
    4362,  4364,  4366,  4368,  4370,  4372,  4374,  4376,  4381,  4385,
    4388,  4392,  4393,  4397,  4401,  4404,  4407,  4409,  4410,  4413,
    4416,  4420,  4423,  4425,  4427,  4431,  4437,  4439,  4442,  4447,
    4450,  4451,  4453,  4454,  4456,  4459,  4462,  4465,  4469,  4475,
    4477,  4480,  4481,  4484,  4486,  4487,  4489,  4491,  4493,  4497,
    4501,  4503,  4507,  4511,  4513,  4515,  4517,  4519,  4521,  4525,
    4527,  4530,  4532,  4536,  4538,  4540,  4542,  4544,  4546,  4548,
    4550,  4553,  4555,  4557,  4559,  4561,  4563,  4566,  4570,  4577,
    4579,  4581,  4583,  4585,  4587,  4589,  4591,  4594,  4596,  4598,
    4600,  4602,  4604,  4606,  4608,  4610,  4612,  4614,  4616,  4618,
    4620,  4622,  4624,  4626,  4628,  4630,  4632,  4634,  4636,  4638,
    4640,  4642,  4644,  4646,  4648,  4650,  4652,  4654,  4656,  4658,
    4660,  4662,  4664,  4666,  4668,  4670,  4672,  4674,  4676,  4678,
    4680,  4682,  4684,  4686,  4688,  4690,  4692,  4694,  4696,  4698,
    4700,  4702,  4704,  4706,  4708,  4710,  4712,  4714,  4716,  4718,
    4720,  4722,  4724,  4726,  4728,  4730,  4732,  4734,  4736,  4738,
    4740,  4742,  4744,  4746,  4748,  4750,  4752,  4754,  4756,  4758,
    4760,  4762,  4764,  4766,  4768,  4770,  4772,  4774,  4776,  4778,
    4780,  4782,  4784,  4786,  4788,  4790,  4792,  4794,  4796,  4798,
    4800,  4802,  4804,  4806,  4808,  4810,  4812,  4814,  4816,  4818,
    4820,  4822,  4824,  4826,  4828,  4830,  4832,  4834,  4836,  4838,
    4840,  4842,  4844,  4846,  4848,  4850,  4852,  4854,  4856,  4858,
    4860,  4862,  4864,  4866,  4868,  4870,  4872,  4874,  4876,  4878,
    4880,  4882,  4884,  4886,  4888,  4890,  4892,  4894,  4896,  4898,
    4900,  4902,  4904,  4906,  4908,  4910,  4912,  4914,  4916,  4918,
    4920,  4922,  4924,  4926,  4928,  4930,  4932,  4934,  4936,  4938,
    4940,  4942,  4944,  4946,  4948,  4950,  4952,  4954,  4956,  4958,
    4960,  4962,  4964,  4966,  4968,  4970,  4972,  4974,  4976,  4978,
    4980,  4982,  4984,  4986,  4988,  4990,  4992,  4994,  4996,  4998,
    5000,  5002,  5004,  5006,  5008,  5010,  5012,  5014,  5016,  5018,
    5020,  5022,  5024,  5026,  5028,  5030,  5032,  5034,  5036,  5038,
    5040,  5042,  5044,  5046,  5048,  5050,  5052,  5054,  5056,  5058,
    5060,  5062,  5064,  5066,  5068,  5070,  5072,  5074,  5076,  5078,
    5080,  5082,  5084,  5086,  5088,  5090,  5092,  5094,  5096,  5098,
    5100,  5102,  5104,  5106,  5108,  5110,  5112,  5114,  5116,  5118,
    5120,  5122,  5124,  5126,  5128,  5130,  5132,  5134,  5136,  5138,
    5140,  5142,  5144,  5146,  5148,  5150,  5152,  5154,  5156,  5158,
    5160,  5162,  5164,  5166,  5168,  5170,  5172,  5174,  5176,  5178,
    5180,  5182,  5184,  5186,  5188,  5190,  5192,  5194,  5196,  5198,
    5200,  5202,  5204,  5206,  5208,  5210,  5212,  5214,  5216,  5218,
    5220,  5222,  5224,  5226,  5228,  5230,  5232,  5234,  5236,  5238,
    5240,  5242,  5244,  5246,  5248,  5250,  5252,  5254,  5256,  5258,
    5260,  5262,  5264,  5266,  5268,  5270,  5272,  5274,  5276,  5278,
    5280,  5282,  5284,  5286,  5288,  5290,  5292,  5294,  5296,  5298,
    5300,  5302
};

/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const short yyrhs[] =
{
     375,     0,    -1,   376,    -1,   376,   371,   377,    -1,   377,
      -1,   606,    -1,   607,    -1,   612,    -1,   563,    -1,   390,
      -1,   580,    -1,   581,    -1,   465,    -1,   414,    -1,   384,
      -1,   383,    -1,   386,    -1,   385,    -1,   617,    -1,   413,
      -1,   422,    -1,   615,    -1,   522,    -1,   410,    -1,   423,
      -1,   460,    -1,   496,    -1,   571,    -1,   614,    -1,   611,
      -1,   549,    -1,   389,    -1,   508,    -1,   472,    -1,   393,
      -1,   464,    -1,   432,    -1,   479,    -1,   482,    -1,   378,
      -1,   382,    -1,   602,    -1,   632,    -1,   651,    -1,   498,
      -1,   638,    -1,   497,    -1,   573,    -1,   392,    -1,   513,
      -1,   514,    -1,   477,    -1,   590,    -1,   516,    -1,   481,
      -1,   495,    -1,   387,    -1,   388,    -1,   610,    -1,   630,
      -1,   623,    -1,   525,    -1,   528,    -1,   539,    -1,   543,
      -1,   633,    -1,   592,    -1,   601,    -1,   640,    -1,   591,
      -1,   626,    -1,   515,    -1,   575,    -1,   567,    -1,   566,
      -1,   568,    -1,   578,    -1,   529,    -1,   540,    -1,   582,
      -1,   654,    -1,   594,    -1,   521,    -1,   593,    -1,   644,
      -1,   616,    -1,   409,    -1,   397,    -1,   408,    -1,   599,
      -1,    -1,    64,   262,   772,   379,   380,    -1,   337,    -1,
      -1,   380,   381,    -1,    -1,   231,   771,    -1,   231,   209,
      -1,   102,   231,   771,    -1,   317,   231,   771,    -1,   294,
      -1,   203,    -1,   145,    -1,   200,    -1,    65,    -1,   197,
      -1,    66,    -1,   198,    -1,    67,    -1,   199,    -1,   182,
      -1,   201,    -1,    58,   174,   773,    -1,   327,   322,   771,
      -1,   324,   761,    -1,   296,   770,    -1,     8,   761,    -1,
     262,   761,    -1,   140,   262,   761,    -1,   140,   129,   761,
      -1,    64,   324,   772,   379,   380,    -1,    13,   262,   772,
     379,   380,    -1,    13,   262,   772,   277,   398,    -1,    13,
     262,   772,   409,    -1,    13,   324,   772,   379,   380,    -1,
      13,   324,   772,   277,   398,    -1,    13,   324,   772,   409,
      -1,    97,   262,   761,    -1,    97,   262,   135,   109,   761,
      -1,    97,   324,   761,    -1,    97,   324,   135,   109,   761,
      -1,    64,   129,   772,   379,   380,    -1,    13,   129,   772,
     391,   324,   761,    -1,     7,    -1,    97,    -1,    97,   129,
     761,    -1,    97,   129,   135,   109,   761,    -1,    64,   268,
     394,    25,   772,   395,    -1,    64,   268,   774,   395,    -1,
     774,    -1,    -1,   395,   396,    -1,    -1,   432,    -1,   543,
      -1,   464,    -1,   482,    -1,   528,    -1,   599,    -1,   277,
     398,    -1,   277,   177,   398,    -1,   277,   275,   398,    -1,
     399,   306,   400,    -1,   399,   354,   400,    -1,   304,   342,
     405,    -1,   308,   597,    -1,   275,    45,    19,   308,   597,
      -1,   190,   406,    -1,   262,   407,    -1,   275,    25,   407,
      -1,   275,    25,    83,    -1,   774,    -1,   399,   370,   774,
      -1,   401,    -1,    83,    -1,   402,    -1,   401,   372,   402,
      -1,   404,    -1,   407,    -1,   469,    -1,   244,   316,    -1,
     244,    56,    -1,   253,   244,    -1,   274,    -1,   312,    -1,
     113,    -1,   218,    -1,   214,    -1,   771,    -1,   346,    -1,
     715,   771,   717,    -1,   715,   367,   770,   368,   771,   717,
      -1,   469,    -1,    83,    -1,   177,    -1,   771,    -1,    83,
      -1,    -1,   774,    -1,   348,    -1,   280,   399,    -1,   280,
     304,   342,    -1,   280,   308,   162,   172,    -1,   280,   275,
      25,    -1,   280,    11,    -1,   255,   399,    -1,   255,   304,
     342,    -1,   255,   308,   162,   172,    -1,   255,   275,    25,
      -1,   255,    11,    -1,   277,    60,   411,   412,    -1,    11,
      -1,   759,    -1,    86,    -1,   137,    -1,    47,    -1,    13,
     298,   688,   415,    -1,    13,   143,   688,   417,    -1,   416,
      -1,   415,   372,   416,    -1,     7,   579,   437,    -1,    13,
     579,   774,   419,    -1,    13,   579,   774,    97,   204,   209,
      -1,    13,   579,   774,   277,   204,   209,    -1,    13,   579,
     774,   277,   288,   471,    -1,    13,   579,   774,   277,   291,
     774,    -1,    97,   579,   774,   420,    -1,    13,   579,   774,
     315,   694,   421,    -1,     7,   445,    -1,    97,    59,   762,
     420,    -1,   277,   338,   216,    -1,    50,   218,   762,    -1,
     277,   338,    50,    -1,   100,   310,   762,    -1,   100,   310,
      11,    -1,   100,   310,   324,    -1,    92,   310,   762,    -1,
      92,   310,    11,    -1,    92,   310,   324,    -1,   145,   760,
      -1,   196,   145,   760,    -1,   418,    -1,   418,    -1,   417,
     372,   418,    -1,   229,   306,   772,    -1,   277,   299,   762,
      -1,   277,   499,    -1,   255,   499,    -1,   277,    83,   718,
      -1,    97,    83,    -1,    38,    -1,   257,    -1,    -1,   325,
     718,    -1,    -1,    49,   762,    -1,    63,   428,   760,   447,
     429,   424,   425,   430,   379,   426,    -1,    63,   655,   306,
     425,   379,   426,    -1,   122,    -1,   306,    -1,   771,    -1,
     289,    -1,   290,    -1,   426,   427,    -1,    -1,    31,    -1,
     216,    -1,    89,   613,   771,    -1,   209,   613,   771,    -1,
      69,    -1,   132,    -1,   243,   613,   771,    -1,   104,   613,
     771,    -1,   118,   243,   448,    -1,   118,   204,   209,   448,
      -1,    31,    -1,    -1,   337,   216,    -1,    -1,   431,    90,
     771,    -1,    -1,   325,    -1,    -1,    64,   433,   298,   760,
     367,   434,   368,   455,   456,   457,   458,    -1,    64,   433,
     298,   760,   213,   760,   367,   434,   368,   456,   457,   458,
      -1,   302,    -1,   300,    -1,   177,   302,    -1,   177,   300,
      -1,   125,   302,    -1,   125,   300,    -1,    -1,   435,    -1,
      -1,   436,    -1,   435,   372,   436,    -1,   437,    -1,   442,
      -1,   445,    -1,   774,   694,   438,    -1,   438,   439,    -1,
      -1,    59,   762,   440,    -1,   440,    -1,   441,    -1,   204,
     209,    -1,   209,    -1,   319,   562,   459,    -1,   238,   164,
     562,   459,    -1,    46,   367,   718,   368,    -1,    83,   719,
      -1,   248,   760,   447,   450,   451,    -1,    85,    -1,   204,
      85,    -1,   147,    86,    -1,   147,   137,    -1,   173,   760,
     443,    -1,   443,   444,    -1,    -1,   141,    84,    -1,   106,
      84,    -1,   141,    60,    -1,   106,    60,    -1,   141,   144,
      -1,   106,   144,    -1,    59,   762,   446,    -1,   446,    -1,
      46,   367,   718,   368,    -1,   319,   367,   448,   368,   562,
     459,    -1,   238,   164,   367,   448,   368,   562,   459,    -1,
     119,   164,   367,   448,   368,   248,   760,   447,   450,   451,
     492,    -1,   367,   448,   368,    -1,    -1,   449,    -1,   448,
     372,   449,    -1,   774,    -1,   183,   123,    -1,   183,   230,
      -1,   183,   282,    -1,    -1,   452,    -1,   453,    -1,   452,
     453,    -1,   453,   452,    -1,    -1,   218,   323,   454,    -1,
     218,    88,   454,    -1,   196,     6,    -1,   257,    -1,    38,
      -1,   277,   209,    -1,   277,    83,    -1,   146,   367,   759,
     368,    -1,    -1,   337,   499,    -1,   337,   216,    -1,   338,
     216,    -1,    -1,   218,    55,    97,    -1,   218,    55,    88,
     265,    -1,   218,    55,   235,   265,    -1,    -1,   299,   762,
      -1,    -1,   325,   143,   299,   762,    -1,    -1,    64,   433,
     298,   760,   461,   456,   457,   458,    19,   654,    -1,   367,
     462,   368,    -1,    -1,   463,    -1,   462,   372,   463,    -1,
     774,    -1,    64,   433,   273,   760,   466,    -1,    13,   273,
     760,   466,    -1,   466,   467,    -1,    -1,    36,   469,    -1,
      76,    -1,   196,    76,    -1,   142,   468,   469,    -1,   184,
     469,    -1,   186,   469,    -1,   196,   184,    -1,   196,   186,
      -1,   228,    35,   519,    -1,   286,   379,   469,    -1,   256,
     379,   469,    -1,    35,    -1,    -1,   470,    -1,   471,    -1,
     347,    -1,   359,   347,    -1,   773,    -1,    64,   473,   478,
     166,   407,    -1,    64,   473,   478,   166,   407,   130,   474,
     475,   476,    -1,   314,    -1,    -1,   762,    -1,   762,   520,
      -1,   328,   474,    -1,    -1,   165,   771,    -1,    -1,    97,
     478,   166,   407,   420,    -1,    97,   478,   166,   135,   109,
     407,   420,    -1,   241,    -1,    -1,    64,   299,   762,   480,
     180,   771,    -1,   229,   762,    -1,    -1,    97,   299,   762,
      -1,    97,   299,   135,   109,   762,    -1,    64,   310,   762,
     483,   484,   218,   760,   486,   108,   242,   768,   367,   489,
     368,    -1,    64,    59,   310,   762,     9,   484,   218,   760,
     491,   492,   117,    98,   264,   108,   242,   768,   367,   489,
     368,    -1,    27,    -1,     9,    -1,   485,    -1,   485,   222,
     485,    -1,   485,   222,   485,   222,   485,    -1,   152,    -1,
      88,    -1,   323,    -1,   117,   487,   488,    -1,    -1,    98,
      -1,    -1,   264,    -1,   287,    -1,   490,    -1,   489,   372,
     490,    -1,    -1,   352,    -1,   347,    -1,   771,    -1,   349,
      -1,   350,    -1,   774,    -1,   122,   760,    -1,    -1,   493,
      -1,   493,   494,    -1,   494,    -1,   494,   493,    -1,    -1,
     204,    85,    -1,    85,    -1,   147,   137,    -1,   147,    86,
      -1,    97,   310,   762,   218,   760,   420,    -1,    97,   310,
     135,   109,   762,   218,   760,   420,    -1,    64,    21,   762,
      46,   367,   718,   368,   492,    -1,    97,    21,   762,   420,
      -1,    64,    10,   768,   503,   499,    -1,    64,    10,   768,
     505,    -1,    64,   220,   570,   499,    -1,    64,   315,   519,
     499,    -1,    64,   315,   519,    -1,    64,   315,   519,    19,
     367,   692,   368,    -1,   367,   500,   368,    -1,   501,    -1,
     500,   372,   501,    -1,   777,   354,   502,    -1,   777,    -1,
     557,    -1,   780,    -1,   781,    -1,   727,    -1,   469,    -1,
     771,    -1,   367,   504,   368,    -1,   367,   360,   368,    -1,
     694,    -1,   504,   372,   694,    -1,   367,   506,   368,    -1,
     507,    -1,   506,   372,   507,    -1,   346,   354,   502,    -1,
      64,   220,    48,   519,   511,   117,   315,   694,   325,   764,
      19,   509,    -1,   510,    -1,   509,   372,   510,    -1,   220,
     770,   570,   512,    -1,   220,   770,   570,   367,   569,   368,
     512,    -1,   124,   770,   768,   551,    -1,   291,   694,    -1,
      83,    -1,    -1,   247,    -1,    -1,    97,   220,    48,   519,
     325,   764,   420,    -1,    97,   220,    48,   135,   109,   519,
     325,   764,   420,    -1,    97,   228,    35,   761,   420,    -1,
     246,   228,    35,   761,   306,   762,    -1,    97,   517,   135,
     109,   518,   420,    -1,    97,   517,   518,   420,    -1,   298,
      -1,   273,    -1,   333,    -1,   143,    -1,   315,    -1,    95,
      -1,    61,    -1,   268,    -1,   519,    -1,   518,   372,   519,
      -1,   774,    -1,   774,   520,    -1,   370,   765,    -1,   520,
     370,   765,    -1,   313,   661,   759,   420,    -1,    54,   218,
     523,   519,   160,   524,    -1,    54,   218,    10,   768,   503,
     160,   524,    -1,    54,   218,   124,   768,   551,   160,   524,
      -1,    54,   218,   220,   570,   367,   569,   368,   160,   524,
      -1,    54,   218,    59,   762,   218,   519,   160,   524,    -1,
      54,   218,   266,   762,   218,   519,   160,   524,    -1,    54,
     218,   266,   762,   160,   524,    -1,    54,   218,   310,   762,
     218,   519,   160,   524,    -1,    54,   218,   220,    48,   519,
     325,   764,   160,   524,    -1,    54,   218,   167,   212,   469,
     160,   524,    -1,    54,   218,    41,   367,   694,    19,   694,
     368,   160,   524,    -1,    54,   218,   478,   166,   519,   160,
     524,    -1,    53,    -1,    77,    -1,   268,    -1,   143,    -1,
     273,    -1,   298,    -1,    95,    -1,   315,    -1,   333,    -1,
      61,    -1,   299,    -1,   262,    -1,   771,    -1,   209,    -1,
     114,   526,   527,   762,    -1,   114,   762,    -1,   189,   526,
     527,   762,    -1,   189,   762,    -1,    -1,   195,    -1,   239,
      -1,   115,    -1,   168,    -1,     4,   773,    -1,   250,   773,
      -1,   773,    -1,    11,    -1,   120,    -1,   120,   773,    -1,
     120,    11,    -1,    26,    -1,    26,   773,    -1,    26,    11,
      -1,   122,    -1,   140,    -1,   126,   530,   218,   533,   306,
     534,   536,    -1,   260,   530,   218,   533,   122,   534,   420,
      -1,   260,   126,   221,   117,   530,   218,   533,   122,   534,
     420,    -1,   531,    -1,    11,    -1,    11,   240,    -1,   532,
      -1,   531,   372,   532,    -1,   272,    -1,   248,    -1,    64,
      -1,   774,    -1,   759,    -1,   298,   759,    -1,   273,   759,
      -1,   124,   537,    -1,    77,   761,    -1,   166,   761,    -1,
     268,   761,    -1,   299,   761,    -1,   535,    -1,   534,   372,
     535,    -1,   772,    -1,   129,   772,    -1,   337,   126,   221,
      -1,    -1,   538,    -1,   537,   372,   538,    -1,   768,   551,
      -1,   126,   531,   306,   761,   541,   542,    -1,   260,   531,
     122,   761,   542,   420,    -1,   260,     8,   221,   117,   531,
     122,   761,   542,   420,    -1,   337,     8,   221,    -1,    -1,
     127,    35,   772,    -1,    -1,    64,   544,   143,   766,   218,
     760,   545,   367,   546,   368,   562,   458,   691,    -1,    64,
     544,   143,    57,   766,   218,   760,   545,   367,   546,   368,
     562,   458,   691,    -1,   319,    -1,    -1,   325,   764,    -1,
      -1,   547,    -1,   546,   372,   547,    -1,   774,   548,    -1,
     721,   548,    -1,   367,   718,   368,   548,    -1,   519,    -1,
     325,   519,    -1,    -1,    64,   550,   124,   768,   551,   259,
     556,   558,   562,    -1,    64,   550,   124,   768,   551,   558,
     562,    -1,   222,   254,    -1,    -1,   367,   552,   368,    -1,
     367,   368,    -1,   553,    -1,   552,   372,   553,    -1,   554,
     555,   557,    -1,   555,   554,   557,    -1,   555,   557,    -1,
     554,   557,    -1,   557,    -1,   140,    -1,   224,    -1,   149,
      -1,   140,   224,    -1,   776,    -1,   557,    -1,   694,    -1,
     775,   520,   362,   315,    -1,   278,   775,   520,   362,   315,
      -1,   560,    -1,   558,   560,    -1,    37,   218,   209,   150,
      -1,   259,   209,   218,   209,   150,    -1,   292,    -1,   138,
      -1,   285,    -1,   334,    -1,   111,   271,    87,    -1,   111,
     271,   159,    -1,   271,    87,    -1,   271,   159,    -1,    19,
     561,    -1,   166,   407,    -1,   559,    -1,   771,    -1,   771,
     372,   771,    -1,   337,   499,    -1,    -1,    13,   124,   538,
     564,   565,    -1,   559,    -1,   564,   559,    -1,   257,    -1,
      -1,    97,   124,   768,   551,   420,    -1,    97,   124,   135,
     109,   768,   551,   420,    -1,    97,    10,   768,   503,   420,
      -1,    97,    10,   135,   109,   768,   503,   420,    -1,    97,
     220,   570,   367,   569,   368,   420,    -1,    97,   220,   135,
     109,   570,   367,   569,   368,   420,    -1,   694,    -1,   694,
     372,   694,    -1,   202,   372,   694,    -1,   694,   372,   202,
      -1,   724,    -1,   774,   370,   570,    -1,    64,    41,   367,
     694,    19,   694,   368,   337,   124,   538,   572,    -1,    64,
      41,   367,   694,    19,   694,   368,   338,   124,   572,    -1,
      19,   139,    -1,    19,    22,    -1,    -1,    97,    41,   574,
     367,   694,    19,   694,   368,   420,    -1,   135,   109,    -1,
      -1,   249,   576,   760,   577,    -1,   249,   297,   762,   577,
      -1,   249,    77,   762,   577,    -1,   143,    -1,   298,    -1,
     118,    -1,    -1,    13,    10,   768,   503,   252,   306,   762,
      -1,    13,    61,   519,   252,   306,   762,    -1,    13,    77,
     763,   252,   306,   763,    -1,    13,   124,   768,   551,   252,
     306,   762,    -1,    13,   129,   772,   252,   306,   772,    -1,
      13,   166,   762,   252,   306,   762,    -1,    13,   220,    48,
     519,   325,   764,   252,   306,   762,    -1,    13,   268,   762,
     252,   306,   762,    -1,    13,   298,   688,   252,   306,   762,
      -1,    13,   143,   688,   252,   306,   762,    -1,    13,   298,
     688,   252,   579,   762,   306,   762,    -1,    13,   310,   762,
     218,   688,   252,   306,   762,    -1,    13,   262,   772,   252,
     306,   772,    -1,    13,   324,   772,   252,   306,   772,    -1,
      13,   299,   762,   252,   306,   762,    -1,    53,    -1,    -1,
      13,    10,   768,   503,   277,   268,   762,    -1,    13,    95,
     519,   277,   268,   762,    -1,    13,   124,   768,   551,   277,
     268,   762,    -1,    13,   273,   688,   277,   268,   762,    -1,
      13,   298,   688,   277,   268,   762,    -1,    13,   315,   519,
     277,   268,   762,    -1,    13,    10,   768,   503,   229,   306,
     772,    -1,    13,    61,   519,   229,   306,   772,    -1,    13,
      77,   763,   229,   306,   772,    -1,    13,    95,   519,   229,
     306,   772,    -1,    13,   124,   768,   551,   229,   306,   772,
      -1,    13,   220,   570,   367,   569,   368,   229,   306,   772,
      -1,    13,   220,    48,   519,   325,   764,   229,   306,   772,
      -1,    13,   268,   762,   229,   306,   772,    -1,    13,   315,
     519,   229,   306,   772,    -1,    13,   299,   762,   229,   306,
     772,    -1,    -1,    64,   550,   266,   762,    19,   583,   218,
     588,   306,   760,   691,    94,   589,   584,    -1,   205,    -1,
     586,    -1,   367,   585,   368,    -1,   585,   371,   587,    -1,
     587,    -1,   654,    -1,   633,    -1,   644,    -1,   638,    -1,
     591,    -1,   586,    -1,    -1,   272,    -1,   323,    -1,    88,
      -1,   152,    -1,   153,    -1,    12,    -1,    -1,    97,   266,
     762,   218,   760,   420,    -1,    97,   266,   135,   109,   762,
     218,   760,   420,    -1,   206,   760,    -1,   175,   760,    -1,
     321,   760,    -1,   321,   360,    -1,     3,   595,    -1,    28,
     595,   598,    -1,   286,   308,   598,    -1,    55,   595,    -1,
     103,   595,    -1,   263,   595,    -1,   267,   774,    -1,   251,
     267,   774,    -1,   251,   774,    -1,   263,   595,   306,   267,
     774,    -1,   263,   595,   306,   774,    -1,   236,   308,   771,
      -1,    55,   237,   771,    -1,   263,   237,   771,    -1,   339,
      -1,   308,    -1,    -1,   162,   172,   403,    -1,   244,   219,
      -1,   244,   340,    -1,   596,    -1,   597,   372,   596,    -1,
     597,   596,    -1,   597,    -1,    -1,    64,   433,   333,   760,
     447,    19,   654,   600,    -1,    64,   222,   254,   433,   333,
     760,   447,    19,   654,   600,    -1,   345,   221,    -1,   343,
      46,   221,    -1,   344,    46,   221,    -1,    -1,   176,   767,
      -1,    64,    77,   763,   379,   603,    -1,   603,   604,    -1,
      -1,   299,   605,   762,    -1,   299,   605,    83,    -1,   180,
     605,   771,    -1,   180,   605,    83,    -1,   301,   605,   762,
      -1,   301,   605,    83,    -1,   101,   605,   771,    -1,   101,
     605,   770,    -1,   101,   605,    83,    -1,    58,   174,   605,
     773,    -1,   229,   605,   762,    -1,   229,   605,    83,    -1,
     354,    -1,    -1,    13,    77,   763,   379,   608,    -1,    13,
      77,   763,   277,   398,    -1,    13,    77,   763,   409,    -1,
     608,   609,    -1,    -1,    58,   174,   605,   773,    -1,    97,
      77,   763,    -1,    97,    77,   135,   109,   763,    -1,    64,
      95,   519,   613,   694,   438,    -1,    13,    95,   519,   419,
      -1,    13,    95,   519,    97,   204,   209,    -1,    13,    95,
     519,   277,   204,   209,    -1,    13,    95,   519,     7,   445,
      -1,    13,    95,   519,    97,    59,   762,   420,    -1,    19,
      -1,    -1,    64,   511,    61,   519,   117,   771,   306,   771,
     122,   519,    -1,    50,   766,   218,   760,    -1,    50,   760,
      -1,    50,    -1,   326,   620,   621,   619,    -1,   326,   620,
     621,   619,   760,    -1,   326,   620,   621,   619,   617,    -1,
     618,   619,    -1,   618,   619,   760,   622,    -1,    15,    -1,
      14,    -1,   332,    -1,    -1,   123,    -1,    -1,   121,    -1,
      -1,   367,   761,   368,    -1,    -1,   110,   625,   619,   624,
      -1,   654,    -1,   633,    -1,   644,    -1,   638,    -1,   651,
      -1,   630,    -1,   618,    -1,    -1,   236,   762,   627,    19,
     629,    -1,   367,   628,   368,    -1,    -1,   694,    -1,   628,
     372,   694,    -1,   654,    -1,   633,    -1,   644,    -1,   638,
      -1,   108,   762,   631,    -1,    64,   433,   298,   760,   461,
     456,   457,   458,    19,   108,   762,   631,    -1,   367,   729,
     368,    -1,    -1,    79,   762,    -1,    79,   236,   762,    -1,
     152,   158,   760,   634,   637,    -1,   654,    -1,   367,   635,
     368,   654,    -1,    83,   329,    -1,   636,    -1,   635,   372,
     636,    -1,   774,   751,    -1,   258,   756,    -1,    -1,    88,
     122,   689,   639,   691,   637,    -1,   325,   681,    -1,    -1,
     181,   661,   759,   641,   643,    -1,   140,   642,   187,    -1,
      -1,     5,   279,    -1,   264,   279,    -1,   264,   107,    -1,
     279,   323,   107,    -1,   279,    -1,   279,   264,   107,    -1,
     107,    -1,     5,   107,    -1,   208,    -1,    -1,   323,   689,
     277,   645,   680,   691,   637,    -1,   646,    -1,   645,   372,
     646,    -1,   647,    -1,   648,    -1,   649,   354,   753,    -1,
     367,   650,   368,   354,   755,    -1,   774,   751,    -1,   649,
      -1,   650,   372,   649,    -1,    82,   762,   652,    75,   653,
     117,   654,    -1,    -1,   652,   196,   269,    -1,   652,   269,
      -1,   652,    31,    -1,   652,   151,    -1,    -1,   337,   133,
      -1,   338,   133,    -1,   656,    -1,   655,    -1,   367,   656,
     368,    -1,   367,   655,   368,    -1,   658,    -1,   657,   665,
      -1,   657,   664,   674,   669,    -1,   657,   664,   668,   675,
      -1,   658,    -1,   655,    -1,   272,   663,   756,   659,   680,
     691,   672,   673,    -1,   679,    -1,   657,   318,   662,   657,
      -1,   657,   156,   662,   657,    -1,   657,   105,   662,   657,
      -1,   158,   660,    -1,    -1,   302,   661,   760,    -1,   300,
     661,   760,    -1,   177,   302,   661,   760,    -1,   177,   300,
     661,   760,    -1,   125,   302,   661,   760,    -1,   125,   300,
     661,   760,    -1,   298,   760,    -1,   760,    -1,   298,    -1,
      -1,    11,    -1,    93,    -1,    -1,    93,    -1,    93,   218,
     367,   729,   368,    -1,    11,    -1,    -1,   665,    -1,    -1,
     223,    35,   666,    -1,   667,    -1,   666,   372,   667,    -1,
     718,   325,   727,    -1,   718,    20,    -1,   718,    91,    -1,
     718,    -1,   174,   670,   215,   671,    -1,   215,   671,   174,
     670,    -1,   174,   670,    -1,   215,   671,    -1,   174,   670,
     372,   671,    -1,   668,    -1,    -1,   718,    -1,    11,    -1,
     718,    -1,   129,    35,   729,    -1,    -1,   131,   718,    -1,
      -1,   676,    -1,   117,   244,   219,    -1,   674,    -1,    -1,
     677,    -1,   676,   677,    -1,   117,   323,   678,   643,    -1,
     117,   279,   678,   643,    -1,   213,   761,    -1,    -1,   329,
     755,    -1,   679,   372,   755,    -1,   122,   681,    -1,    -1,
     682,    -1,   681,   372,   682,    -1,   688,    -1,   688,   684,
      -1,   690,    -1,   690,   684,    -1,   690,    19,   367,   692,
     368,    -1,   690,    19,   774,   367,   692,   368,    -1,   690,
     774,   367,   692,   368,    -1,   655,    -1,   655,   684,    -1,
     683,    -1,   367,   683,   368,   684,    -1,   367,   683,   368,
      -1,   682,    68,   163,   682,    -1,   682,   685,   163,   682,
     687,    -1,   682,   163,   682,   687,    -1,   682,   192,   685,
     163,   682,    -1,   682,   192,   163,   682,    -1,    19,   774,
     367,   761,   368,    -1,    19,   774,    -1,   774,   367,   761,
     368,    -1,   774,    -1,   123,   686,    -1,   171,   686,    -1,
     261,   686,    -1,   148,    -1,   225,    -1,    -1,   325,   367,
     761,   368,    -1,   218,   718,    -1,   760,    -1,   760,   360,
      -1,   219,   760,    -1,   219,   367,   760,   368,    -1,   688,
      -1,   688,   774,    -1,   688,    19,   774,    -1,   721,    -1,
     336,   718,    -1,    -1,   693,    -1,   692,   372,   693,    -1,
     774,   694,    -1,   696,   695,    -1,   278,   696,   695,    -1,
     696,    18,   365,   770,   366,    -1,   278,   696,    18,   365,
     770,   366,    -1,   695,   365,   366,    -1,   695,   365,   770,
     366,    -1,    -1,   698,    -1,   699,    -1,   703,    -1,   707,
      -1,   714,    -1,   715,   717,    -1,   715,   367,   770,   368,
     717,    -1,   775,   520,    -1,   698,    -1,   699,    -1,   704,
      -1,   708,    -1,   714,    -1,   775,    -1,   154,    -1,   155,
      -1,   283,    -1,    30,    -1,   245,    -1,   116,   700,    -1,
      96,   234,    -1,    81,   702,    -1,    80,   702,    -1,   211,
     701,    -1,    33,    -1,   367,   770,   368,    -1,    -1,   367,
     770,   372,   770,   368,    -1,   367,   770,   368,    -1,    -1,
     367,   770,   372,   770,   368,    -1,   367,   770,   368,    -1,
      -1,   705,    -1,   706,    -1,   705,    -1,   706,    -1,    32,
     712,   367,   770,   368,    -1,    32,   712,    -1,   709,    -1,
     710,    -1,   709,    -1,   710,    -1,   711,   367,   770,   368,
     713,    -1,   711,   713,    -1,    44,   712,    -1,    43,   712,
      -1,   330,    -1,   191,    44,   712,    -1,   191,    43,   712,
      -1,   193,   712,    -1,   331,    -1,    -1,    44,   277,   774,
      -1,    -1,   305,   367,   770,   368,   716,    -1,   305,   716,
      -1,   304,   367,   770,   368,   716,    -1,   304,   716,    -1,
     157,    -1,   337,   304,   342,    -1,   338,   304,   342,    -1,
      -1,   341,    -1,   188,    -1,    78,    -1,   134,    -1,   185,
      -1,   270,    -1,   341,   306,   188,    -1,    78,   306,   134,
      -1,    78,   306,   185,    -1,    78,   306,   270,    -1,   134,
     306,   185,    -1,   134,   306,   270,    -1,   185,   306,   270,
      -1,    -1,   720,    -1,   718,   369,   694,    -1,   718,    24,
     304,   342,   718,    -1,   358,   718,    -1,   359,   718,    -1,
     718,   358,   718,    -1,   718,   359,   718,    -1,   718,   360,
     718,    -1,   718,   361,   718,    -1,   718,   362,   718,    -1,
     718,   363,   718,    -1,   718,   355,   718,    -1,   718,   356,
     718,    -1,   718,   354,   718,    -1,   718,   726,   718,    -1,
     726,   718,    -1,   718,   726,    -1,   718,    16,   718,    -1,
     718,   222,   718,    -1,   204,   718,    -1,   718,   173,   718,
      -1,   718,   173,   718,   104,   718,    -1,   718,   204,   173,
     718,    -1,   718,   204,   173,   718,   104,   718,    -1,   718,
     136,   718,    -1,   718,   136,   718,   104,   718,    -1,   718,
     204,   136,   718,    -1,   718,   204,   136,   718,   104,   718,
      -1,   718,   281,   306,   718,    -1,   718,   281,   306,   718,
     104,   718,    -1,   718,   204,   281,   306,   718,    -1,   718,
     204,   281,   306,   718,   104,   718,    -1,   718,   160,   209,
      -1,   718,   161,    -1,   718,   160,   204,   209,    -1,   718,
     207,    -1,   722,   226,   722,    -1,   718,   160,   312,    -1,
     718,   160,   204,   312,    -1,   718,   160,   113,    -1,   718,
     160,   204,   113,    -1,   718,   160,   320,    -1,   718,   160,
     204,   320,    -1,   718,   160,    93,   122,   718,    -1,   718,
     160,   204,    93,   122,   718,    -1,   718,   160,   213,   367,
     731,   368,    -1,   718,   160,   204,   213,   367,   731,   368,
      -1,   718,    29,   752,   719,    16,   719,    -1,   718,   204,
      29,   752,   719,    16,   719,    -1,   718,    29,   295,   719,
      16,   719,    -1,   718,   204,    29,   295,   719,    16,   719,
      -1,   718,   140,   742,    -1,   718,   204,   140,   742,    -1,
     718,   728,   723,   655,    -1,   718,   728,   723,   367,   718,
     368,    -1,   319,   655,    -1,   720,    -1,   719,   369,   694,
      -1,   358,   719,    -1,   359,   719,    -1,   719,   358,   719,
      -1,   719,   359,   719,    -1,   719,   360,   719,    -1,   719,
     361,   719,    -1,   719,   362,   719,    -1,   719,   363,   719,
      -1,   719,   355,   719,    -1,   719,   356,   719,    -1,   719,
     354,   719,    -1,   719,   726,   719,    -1,   726,   719,    -1,
     719,   726,    -1,   719,   160,    93,   122,   719,    -1,   719,
     160,   204,    93,   122,   719,    -1,   719,   160,   213,   367,
     731,   368,    -1,   719,   160,   204,   213,   367,   731,   368,
      -1,   748,    -1,   769,    -1,   353,   751,    -1,   367,   718,
     368,   751,    -1,   743,    -1,   721,    -1,   655,    -1,   109,
     655,    -1,    18,   655,    -1,    18,   733,    -1,   722,    -1,
     768,   367,   368,    -1,   768,   367,   729,   368,    -1,   768,
     367,    11,   729,   368,    -1,   768,   367,    93,   729,   368,
      -1,   768,   367,   360,   368,    -1,    70,    -1,    72,    -1,
      72,   367,   770,   368,    -1,    73,    -1,    73,   367,   770,
     368,    -1,   178,    -1,   178,   367,   770,   368,    -1,   179,
      -1,   179,   367,   770,   368,    -1,    71,    -1,    74,    -1,
     276,    -1,   324,    -1,    41,   367,   718,    19,   694,   368,
      -1,   112,   367,   730,   368,    -1,   227,   367,   735,   368,
      -1,   233,   367,   737,   368,    -1,   293,   367,   738,   368,
      -1,   309,   367,   718,    19,   694,   368,    -1,   311,   367,
      34,   741,   368,    -1,   311,   367,   169,   741,   368,    -1,
     311,   367,   307,   741,   368,    -1,   311,   367,   741,   368,
      -1,    62,   367,   718,   325,   519,   368,    -1,    62,   367,
     729,   368,    -1,   210,   367,   718,   372,   718,   368,    -1,
      51,   367,   729,   368,    -1,   128,   367,   729,   368,    -1,
     170,   367,   729,   368,    -1,   264,   367,   729,   368,    -1,
     264,   367,   368,    -1,   367,   729,   372,   718,   368,    -1,
      17,    -1,   284,    -1,    11,    -1,   351,    -1,   725,    -1,
     358,    -1,   359,    -1,   360,    -1,   361,    -1,   362,    -1,
     363,    -1,   355,    -1,   356,    -1,   354,    -1,   351,    -1,
     220,   367,   570,   368,    -1,   724,    -1,   220,   367,   570,
     368,    -1,   724,    -1,   220,   367,   570,   368,    -1,   173,
      -1,   204,   173,    -1,   136,    -1,   204,   136,    -1,   718,
      -1,   729,   372,   718,    -1,   734,   122,   718,    -1,    -1,
     731,   372,   694,    -1,   694,    -1,   733,    -1,   732,   372,
     733,    -1,   365,   729,   366,    -1,   365,   732,   366,    -1,
     346,    -1,   341,    -1,   188,    -1,    78,    -1,   134,    -1,
     185,    -1,   270,    -1,   348,    -1,   718,   736,   739,   740,
      -1,   718,   736,   739,    -1,   232,   718,    -1,   719,   140,
     719,    -1,    -1,   718,   739,   740,    -1,   718,   740,   739,
      -1,   718,   739,    -1,   718,   740,    -1,   729,    -1,    -1,
     122,   718,    -1,   117,   718,    -1,   718,   122,   729,    -1,
     122,   729,    -1,   729,    -1,   655,    -1,   367,   729,   368,
      -1,    40,   747,   744,   746,   103,    -1,   745,    -1,   744,
     745,    -1,   335,   718,   303,   718,    -1,    99,   718,    -1,
      -1,   718,    -1,    -1,   758,    -1,   758,   750,    -1,   370,
     765,    -1,   370,   360,    -1,   365,   718,   366,    -1,   365,
     718,   373,   718,   366,    -1,   749,    -1,   750,   749,    -1,
      -1,   751,   749,    -1,    23,    -1,    -1,   718,    -1,    83,
      -1,   753,    -1,   754,   372,   753,    -1,   367,   754,   368,
      -1,   757,    -1,   756,   372,   757,    -1,   718,    19,   777,
      -1,   718,    -1,   360,    -1,   782,    -1,   774,    -1,   760,
      -1,   759,   372,   760,    -1,   758,    -1,   758,   750,    -1,
     762,    -1,   761,   372,   762,    -1,   774,    -1,   774,    -1,
     774,    -1,   777,    -1,   774,    -1,   771,    -1,   776,    -1,
     758,   750,    -1,   770,    -1,   347,    -1,   771,    -1,   349,
      -1,   350,    -1,   697,   771,    -1,   715,   771,   717,    -1,
     715,   367,   770,   368,   771,   717,    -1,   312,    -1,   113,
      -1,   209,    -1,   352,    -1,   348,    -1,   774,    -1,   352,
      -1,   359,   352,    -1,   346,    -1,   778,    -1,   779,    -1,
     346,    -1,   778,    -1,   346,    -1,   778,    -1,   780,    -1,
     346,    -1,   778,    -1,   779,    -1,   780,    -1,   781,    -1,
       3,    -1,     4,    -1,     5,    -1,     6,    -1,     7,    -1,
       8,    -1,     9,    -1,    10,    -1,    12,    -1,    13,    -1,
      21,    -1,    22,    -1,    24,    -1,    26,    -1,    27,    -1,
      28,    -1,    35,    -1,    36,    -1,    37,    -1,    38,    -1,
      39,    -1,    42,    -1,    45,    -1,    47,    -1,    48,    -1,
      49,    -1,    50,    -1,    54,    -1,    55,    -1,    56,    -1,
      57,    -1,    58,    -1,    60,    -1,    61,    -1,    63,    -1,
      65,    -1,    66,    -1,    67,    -1,    69,    -1,    75,    -1,
      76,    -1,    77,    -1,    78,    -1,    79,    -1,    82,    -1,
      84,    -1,    86,    -1,    87,    -1,    88,    -1,    89,    -1,
      90,    -1,    92,    -1,    95,    -1,    96,    -1,    97,    -1,
      98,    -1,   100,    -1,   101,    -1,   102,    -1,   104,    -1,
     106,    -1,   107,    -1,   108,    -1,   110,    -1,   111,    -1,
     114,    -1,   115,    -1,   118,    -1,   120,    -1,   124,    -1,
     125,    -1,   127,    -1,   130,    -1,   132,    -1,   133,    -1,
     134,    -1,   135,    -1,   137,    -1,   138,    -1,   139,    -1,
     141,    -1,   142,    -1,   143,    -1,   144,    -1,   145,    -1,
     146,    -1,   150,    -1,   151,    -1,   152,    -1,   153,    -1,
     159,    -1,   162,    -1,   164,    -1,   165,    -1,   166,    -1,
     167,    -1,   168,    -1,   172,    -1,   175,    -1,   176,    -1,
     177,    -1,   180,    -1,   181,    -1,   182,    -1,   183,    -1,
     184,    -1,   185,    -1,   186,    -1,   187,    -1,   188,    -1,
     189,    -1,   190,    -1,   195,    -1,   196,    -1,   197,    -1,
     198,    -1,   199,    -1,   200,    -1,   201,    -1,   203,    -1,
     205,    -1,   206,    -1,   208,    -1,   212,    -1,   213,    -1,
     216,    -1,   220,    -1,   221,    -1,   228,    -1,   229,    -1,
     230,    -1,   231,    -1,   236,    -1,   237,    -1,   235,    -1,
     239,    -1,   240,    -1,   241,    -1,   242,    -1,   243,    -1,
     244,    -1,   246,    -1,   247,    -1,   249,    -1,   250,    -1,
     251,    -1,   252,    -1,   253,    -1,   254,    -1,   255,    -1,
     256,    -1,   257,    -1,   259,    -1,   260,    -1,   262,    -1,
     263,    -1,   265,    -1,   266,    -1,   267,    -1,   268,    -1,
     269,    -1,   270,    -1,   271,    -1,   273,    -1,   274,    -1,
     275,    -1,   277,    -1,   279,    -1,   280,    -1,   282,    -1,
     285,    -1,   286,    -1,   287,    -1,   288,    -1,   289,    -1,
     290,    -1,   291,    -1,   294,    -1,   296,    -1,   297,    -1,
     292,    -1,   299,    -1,   300,    -1,   301,    -1,   302,    -1,
     308,    -1,   310,    -1,   313,    -1,   314,    -1,   315,    -1,
     316,    -1,   317,    -1,   320,    -1,   321,    -1,   322,    -1,
     323,    -1,   326,    -1,   327,    -1,   328,    -1,   331,    -1,
     333,    -1,   334,    -1,   337,    -1,   338,    -1,   339,    -1,
     340,    -1,   341,    -1,   342,    -1,    30,    -1,    32,    -1,
      33,    -1,    43,    -1,    44,    -1,    51,    -1,    62,    -1,
      80,    -1,    81,    -1,   109,    -1,   112,    -1,   116,    -1,
     128,    -1,   149,    -1,   154,    -1,   155,    -1,   157,    -1,
     170,    -1,   191,    -1,   193,    -1,   202,    -1,   210,    -1,
     211,    -1,   224,    -1,   227,    -1,   233,    -1,   234,    -1,
     245,    -1,   264,    -1,   278,    -1,   283,    -1,   293,    -1,
     304,    -1,   305,    -1,   309,    -1,   311,    -1,   329,    -1,
     330,    -1,    25,    -1,    29,    -1,    31,    -1,    68,    -1,
     121,    -1,   123,    -1,   136,    -1,   148,    -1,   160,    -1,
     161,    -1,   163,    -1,   171,    -1,   173,    -1,   192,    -1,
     207,    -1,   225,    -1,   226,    -1,   261,    -1,   281,    -1,
     332,    -1,    11,    -1,    14,    -1,    15,    -1,    16,    -1,
      17,    -1,    18,    -1,    19,    -1,    20,    -1,    23,    -1,
      34,    -1,    40,    -1,    41,    -1,    46,    -1,    52,    -1,
      53,    -1,    59,    -1,    64,    -1,    70,    -1,    71,    -1,
      72,    -1,    73,    -1,    74,    -1,    83,    -1,    85,    -1,
      91,    -1,    93,    -1,    94,    -1,    99,    -1,   103,    -1,
     105,    -1,   113,    -1,   117,    -1,   119,    -1,   122,    -1,
     126,    -1,   129,    -1,   131,    -1,   140,    -1,   147,    -1,
     156,    -1,   158,    -1,   169,    -1,   174,    -1,   178,    -1,
     179,    -1,   194,    -1,   204,    -1,   209,    -1,   214,    -1,
     215,    -1,   217,    -1,   218,    -1,   219,    -1,   222,    -1,
     223,    -1,   232,    -1,   238,    -1,   248,    -1,   258,    -1,
     272,    -1,   276,    -1,   284,    -1,   295,    -1,   298,    -1,
     303,    -1,   306,    -1,   307,    -1,   312,    -1,   318,    -1,
     319,    -1,   324,    -1,   325,    -1,   335,    -1,   336,    -1,
     217,    -1,   194,    -1
};

/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
static const unsigned short yyrline[] =
{
       0,   494,   494,   498,   504,   513,   514,   515,   516,   517,
     518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
     528,   529,   530,   531,   532,   533,   534,   535,   536,   537,
     538,   539,   540,   541,   542,   543,   544,   545,   546,   547,
     548,   549,   550,   551,   552,   553,   554,   555,   556,   557,
     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
     568,   569,   570,   571,   572,   573,   574,   575,   576,   577,
     578,   579,   580,   581,   582,   583,   584,   585,   586,   587,
     588,   589,   590,   591,   592,   593,   594,   595,   596,   597,
     599,   609,   620,   621,   630,   631,   635,   640,   644,   649,
     654,   658,   662,   666,   670,   674,   678,   682,   686,   691,
     695,   699,   703,   707,   712,   717,   721,   725,   729,   733,
     747,   765,   776,   784,   802,   814,   822,   843,   850,   869,
     876,   893,   911,   922,   923,   935,   942,   959,   971,   983,
     984,   988,   989,   997,   998,   999,  1000,  1001,  1002,  1016,
    1022,  1028,  1036,  1043,  1050,  1058,  1065,  1072,  1080,  1087,
    1094,  1104,  1105,  1117,  1118,  1121,  1122,  1125,  1127,  1129,
    1133,  1134,  1135,  1136,  1140,  1141,  1142,  1143,  1155,  1159,
    1163,  1176,  1203,  1204,  1205,  1209,  1210,  1211,  1215,  1216,
    1221,  1227,  1233,  1239,  1245,  1254,  1260,  1266,  1272,  1278,
    1288,  1298,  1299,  1303,  1304,  1312,  1327,  1335,  1346,  1347,
    1353,  1361,  1370,  1378,  1386,  1395,  1404,  1416,  1426,  1434,
    1443,  1450,  1458,  1466,  1474,  1481,  1488,  1496,  1503,  1510,
    1518,  1525,  1532,  1533,  1539,  1547,  1555,  1563,  1573,  1581,
    1585,  1586,  1587,  1591,  1592,  1605,  1628,  1650,  1665,  1666,
    1675,  1676,  1677,  1683,  1684,  1689,  1693,  1697,  1701,  1705,
    1709,  1713,  1717,  1721,  1725,  1734,  1738,  1742,  1746,  1751,
    1755,  1759,  1760,  1771,  1785,  1811,  1812,  1813,  1814,  1815,
    1816,  1817,  1821,  1822,  1826,  1830,  1837,  1838,  1839,  1842,
    1854,  1855,  1859,  1880,  1881,  1900,  1911,  1922,  1934,  1946,
    1957,  1976,  2004,  2010,  2016,  2022,  2040,  2050,  2051,  2055,
    2056,  2057,  2058,  2059,  2060,  2069,  2090,  2094,  2104,  2116,
    2128,  2146,  2147,  2151,  2152,  2155,  2161,  2165,  2172,  2177,
    2189,  2191,  2193,  2195,  2198,  2201,  2204,  2208,  2209,  2210,
    2211,  2212,  2215,  2216,  2221,  2222,  2223,  2224,  2227,  2228,
    2229,  2230,  2233,  2234,  2237,  2238,  2248,  2274,  2275,  2279,
    2280,  2284,  2309,  2320,  2329,  2330,  2333,  2337,  2341,  2345,
    2349,  2353,  2357,  2361,  2365,  2369,  2373,  2379,  2380,  2384,
    2385,  2388,  2389,  2396,  2408,  2418,  2432,  2433,  2441,  2442,
    2446,  2447,  2451,  2452,  2456,  2464,  2475,  2476,  2486,  2496,
    2497,  2510,  2517,  2535,  2553,  2577,  2578,  2582,  2588,  2594,
    2603,  2604,  2605,  2609,  2614,  2624,  2625,  2629,  2630,  2634,
    2635,  2636,  2640,  2646,  2647,  2648,  2649,  2650,  2654,  2655,
    2659,  2661,  2669,  2676,  2685,  2689,  2690,  2694,  2695,  2700,
    2710,  2732,  2751,  2774,  2784,  2795,  2805,  2815,  2826,  2862,
    2865,  2866,  2869,  2873,  2880,  2881,  2882,  2883,  2884,  2885,
    2888,  2889,  2893,  2894,  2897,  2900,  2901,  2904,  2920,  2934,
    2935,  2939,  2949,  2959,  2968,  2977,  2978,  2981,  2982,  2987,
    2996,  3016,  3026,  3044,  3053,  3065,  3066,  3067,  3068,  3069,
    3070,  3071,  3072,  3076,  3077,  3080,  3081,  3084,  3086,  3099,
    3127,  3136,  3145,  3154,  3164,  3173,  3182,  3192,  3201,  3210,
    3219,  3228,  3240,  3241,  3242,  3243,  3244,  3245,  3246,  3247,
    3248,  3249,  3250,  3251,  3255,  3256,  3266,  3273,  3282,  3289,
    3302,  3308,  3315,  3322,  3329,  3336,  3343,  3350,  3357,  3364,
    3371,  3378,  3385,  3392,  3399,  3408,  3409,  3419,  3434,  3447,
    3473,  3475,  3477,  3481,  3483,  3487,  3488,  3489,  3490,  3498,
    3505,  3512,  3519,  3526,  3533,  3540,  3547,  3558,  3559,  3562,
    3572,  3586,  3587,  3591,  3592,  3597,  3613,  3626,  3636,  3648,
    3649,  3652,  3653,  3668,  3684,  3703,  3704,  3708,  3709,  3712,
    3713,  3721,  3728,  3735,  3744,  3745,  3746,  3761,  3773,  3788,
    3789,  3792,  3793,  3797,  3798,  3812,  3820,  3828,  3836,  3844,
    3855,  3856,  3857,  3858,  3864,  3868,  3882,  3883,  3891,  3905,
    3906,  3913,  3917,  3921,  3925,  3929,  3933,  3937,  3941,  3945,
    3949,  3956,  3960,  3964,  3970,  3971,  3978,  3979,  3991,  4002,
    4003,  4008,  4009,  4024,  4034,  4047,  4057,  4070,  4080,  4093,
    4100,  4102,  4104,  4109,  4111,  4122,  4132,  4144,  4145,  4146,
    4150,  4161,  4162,  4176,  4184,  4194,  4207,  4208,  4211,  4212,
    4222,  4231,  4239,  4247,  4256,  4264,  4272,  4281,  4289,  4298,
    4307,  4316,  4325,  4333,  4341,  4351,  4352,  4362,  4371,  4379,
    4388,  4396,  4404,  4420,  4429,  4437,  4445,  4453,  4462,  4471,
    4480,  4488,  4496,  4514,  4513,  4532,  4533,  4534,  4539,  4545,
    4554,  4555,  4556,  4557,  4558,  4562,  4563,  4566,  4567,  4568,
    4569,  4573,  4574,  4575,  4580,  4590,  4611,  4619,  4628,  4634,
    4655,  4662,  4669,  4676,  4683,  4690,  4697,  4705,  4713,  4721,
    4729,  4737,  4744,  4751,  4760,  4761,  4762,  4766,  4769,  4772,
    4779,  4781,  4783,  4788,  4790,  4802,  4813,  4831,  4837,  4843,
    4849,  4859,  4875,  4885,  4886,  4890,  4894,  4898,  4902,  4906,
    4910,  4914,  4918,  4922,  4926,  4930,  4934,  4944,  4945,  4956,
    4966,  4974,  4986,  4987,  4991,  5005,  5012,  5029,  5041,  5050,
    5058,  5066,  5075,  5086,  5087,  5101,  5124,  5131,  5138,  5155,
    5167,  5179,  5191,  5203,  5218,  5219,  5223,  5224,  5227,  5228,
    5231,  5232,  5236,  5237,  5248,  5259,  5260,  5261,  5262,  5263,
    5264,  5268,  5269,  5279,  5289,  5290,  5293,  5294,  5299,  5300,
    5301,  5302,  5312,  5320,  5341,  5342,  5352,  5358,  5374,  5383,
    5389,  5395,  5404,  5406,  5411,  5422,  5423,  5434,  5447,  5448,
    5451,  5462,  5463,  5466,  5467,  5468,  5469,  5470,  5471,  5472,
    5473,  5476,  5477,  5488,  5505,  5506,  5510,  5511,  5515,  5523,
    5550,  5561,  5562,  5572,  5584,  5585,  5586,  5587,  5588,  5591,
    5592,  5593,  5641,  5642,  5646,  5647,  5657,  5658,  5664,  5670,
    5679,  5680,  5707,  5722,  5723,  5727,  5731,  5738,  5739,  5747,
    5752,  5757,  5762,  5767,  5772,  5777,  5782,  5789,  5790,  5793,
    5794,  5795,  5802,  5803,  5804,  5805,  5809,  5810,  5814,  5818,
    5819,  5822,  5829,  5836,  5843,  5854,  5856,  5858,  5860,  5862,
    5873,  5875,  5879,  5880,  5890,  5894,  5895,  5899,  5900,  5904,
    5905,  5909,  5910,  5914,  5915,  5919,  5927,  5938,  5939,  5944,
    5950,  5968,  5969,  5973,  5974,  5984,  5988,  5993,  6000,  6008,
    6015,  6025,  6035,  6061,  6068,  6072,  6098,  6102,  6114,  6127,
    6141,  6152,  6167,  6173,  6178,  6184,  6191,  6192,  6193,  6194,
    6198,  6199,  6211,  6212,  6217,  6224,  6231,  6238,  6257,  6261,
    6268,  6278,  6283,  6284,  6289,  6293,  6299,  6320,  6325,  6331,
    6337,  6347,  6349,  6352,  6364,  6365,  6366,  6367,  6368,  6369,
    6375,  6393,  6412,  6413,  6414,  6415,  6416,  6420,  6432,  6436,
    6440,  6444,  6448,  6452,  6456,  6460,  6465,  6470,  6475,  6481,
    6497,  6503,  6518,  6529,  6536,  6551,  6562,  6573,  6577,  6585,
    6589,  6597,  6618,  6639,  6643,  6649,  6653,  6666,  6701,  6724,
    6726,  6728,  6730,  6732,  6734,  6739,  6740,  6744,  6745,  6749,
    6775,  6786,  6808,  6818,  6822,  6823,  6824,  6828,  6829,  6830,
    6831,  6832,  6833,  6834,  6836,  6838,  6841,  6844,  6846,  6849,
    6851,  6877,  6878,  6880,  6899,  6901,  6903,  6905,  6907,  6909,
    6911,  6913,  6915,  6917,  6919,  6922,  6924,  6926,  6929,  6931,
    6933,  6936,  6938,  6948,  6950,  6960,  6962,  6972,  6974,  6985,
    6997,  7007,  7019,  7039,  7046,  7053,  7060,  7067,  7071,  7078,
    7085,  7092,  7099,  7106,  7113,  7117,  7125,  7129,  7133,  7140,
    7147,  7160,  7173,  7191,  7211,  7220,  7227,  7253,  7255,  7257,
    7259,  7261,  7263,  7265,  7267,  7269,  7271,  7273,  7275,  7277,
    7279,  7281,  7283,  7285,  7289,  7294,  7298,  7312,  7313,  7314,
    7328,  7340,  7342,  7344,  7353,  7362,  7371,  7373,  7390,  7400,
    7410,  7424,  7434,  7454,  7482,  7499,  7529,  7543,  7574,  7591,
    7621,  7638,  7669,  7679,  7689,  7699,  7709,  7711,  7721,  7736,
    7747,  7760,  7779,  7792,  7802,  7812,  7822,  7837,  7847,  7851,
    7857,  7864,  7883,  7884,  7885,  7888,  7889,  7890,  7893,  7894,
    7897,  7898,  7899,  7900,  7901,  7902,  7903,  7904,  7905,  7908,
    7910,  7915,  7917,  7922,  7924,  7926,  7928,  7930,  7932,  7944,
    7948,  7955,  7962,  7965,  7969,  7975,  7977,  7981,  7987,  8000,
    8001,  8002,  8003,  8004,  8005,  8006,  8007,  8016,  8020,  8027,
    8034,  8035,  8051,  8055,  8060,  8064,  8079,  8084,  8088,  8091,
    8094,  8095,  8096,  8099,  8106,  8116,  8129,  8130,  8134,  8144,
    8145,  8148,  8149,  8157,  8161,  8168,  8172,  8176,  8183,  8193,
    8194,  8198,  8199,  8202,  8203,  8214,  8215,  8219,  8220,  8228,
    8239,  8240,  8244,  8252,  8260,  8282,  8283,  8287,  8288,  8299,
    8306,  8332,  8334,  8339,  8342,  8345,  8347,  8349,  8351,  8361,
    8363,  8371,  8378,  8385,  8392,  8399,  8411,  8419,  8430,  8453,
    8457,  8461,  8469,  8470,  8471,  8473,  8474,  8490,  8491,  8492,
    8497,  8498,  8504,  8505,  8506,  8512,  8513,  8514,  8515,  8516,
    8532,  8533,  8534,  8535,  8536,  8537,  8538,  8539,  8540,  8541,
    8542,  8543,  8544,  8545,  8546,  8547,  8548,  8549,  8550,  8551,
    8552,  8553,  8554,  8555,  8556,  8557,  8558,  8559,  8560,  8561,
    8562,  8563,  8564,  8565,  8566,  8567,  8568,  8569,  8570,  8571,
    8572,  8573,  8574,  8575,  8576,  8577,  8578,  8579,  8580,  8581,
    8582,  8583,  8584,  8585,  8586,  8587,  8588,  8589,  8590,  8591,
    8592,  8593,  8594,  8595,  8596,  8597,  8598,  8599,  8600,  8601,
    8602,  8603,  8604,  8605,  8606,  8607,  8608,  8609,  8610,  8611,
    8612,  8613,  8614,  8615,  8616,  8617,  8618,  8619,  8620,  8621,
    8622,  8623,  8624,  8625,  8626,  8627,  8628,  8629,  8630,  8631,
    8632,  8633,  8634,  8635,  8636,  8637,  8638,  8639,  8640,  8641,
    8642,  8643,  8644,  8645,  8646,  8647,  8648,  8649,  8650,  8651,
    8652,  8653,  8654,  8655,  8656,  8657,  8658,  8659,  8660,  8661,
    8662,  8663,  8664,  8665,  8666,  8667,  8668,  8669,  8670,  8671,
    8672,  8673,  8674,  8675,  8676,  8677,  8678,  8679,  8680,  8681,
    8682,  8683,  8684,  8685,  8686,  8687,  8688,  8689,  8690,  8691,
    8692,  8693,  8694,  8695,  8696,  8697,  8698,  8699,  8700,  8701,
    8702,  8703,  8704,  8705,  8706,  8707,  8708,  8709,  8710,  8711,
    8712,  8713,  8714,  8715,  8716,  8717,  8718,  8719,  8720,  8721,
    8722,  8723,  8724,  8725,  8726,  8727,  8728,  8729,  8730,  8731,
    8732,  8733,  8734,  8735,  8736,  8737,  8738,  8739,  8753,  8754,
    8755,  8756,  8757,  8758,  8759,  8760,  8761,  8762,  8763,  8764,
    8765,  8766,  8767,  8768,  8769,  8770,  8771,  8772,  8773,  8774,
    8775,  8776,  8777,  8778,  8779,  8780,  8781,  8782,  8783,  8784,
    8785,  8786,  8787,  8788,  8789,  8790,  8804,  8805,  8806,  8807,
    8808,  8809,  8810,  8811,  8812,  8813,  8814,  8815,  8816,  8817,
    8818,  8819,  8820,  8821,  8822,  8823,  8833,  8834,  8835,  8836,
    8837,  8838,  8839,  8840,  8841,  8842,  8843,  8844,  8845,  8846,
    8847,  8848,  8849,  8850,  8851,  8852,  8853,  8854,  8855,  8856,
    8857,  8858,  8859,  8860,  8861,  8862,  8863,  8864,  8865,  8866,
    8867,  8868,  8869,  8870,  8871,  8872,  8873,  8874,  8875,  8876,
    8877,  8878,  8879,  8880,  8881,  8882,  8883,  8884,  8885,  8886,
    8887,  8888,  8889,  8890,  8891,  8892,  8893,  8894,  8895,  8896,
    8897,  8898,  8899,  8900,  8901,  8902,  8903,  8904,  8905,  8906,
    8911,  8920
};
#endif

#if YYDEBUG || YYERROR_VERBOSE
/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
  "$end", "error", "$undefined", "ABORT_P", "ABSOLUTE_P", "ACCESS", 
  "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE", "ALL", "ALSO", 
  "ALTER", "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC", 
  "ASSERTION", "ASSIGNMENT", "ASYMMETRIC", "AT", "AUTHORIZATION", 
  "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT", 
  "BOOLEAN_P", "BOTH", "BY", "CACHE", "CALLED", "CASCADE", "CASCADED", 
  "CASE", "CAST", "CHAIN", "CHAR_P", "CHARACTER", "CHARACTERISTICS", 
  "CHECK", "CHECKPOINT", "CLASS", "CLOSE", "CLUSTER", "COALESCE", 
  "COLLATE", "COLUMN", "COMMENT", "COMMIT", "COMMITTED", "CONCURRENTLY", 
  "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONVERSION_P", "CONVERT", 
  "COPY", "CREATE", "CREATEDB", "CREATEROLE", "CREATEUSER", "CROSS", 
  "CSV", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_TIME", 
  "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "CYCLE", "DATABASE", 
  "DAY_P", "DEALLOCATE", "DEC", "DECIMAL_P", "DECLARE", "DEFAULT", 
  "DEFAULTS", "DEFERRABLE", "DEFERRED", "DEFINER", "DELETE_P", 
  "DELIMITER", "DELIMITERS", "DESC", "DISABLE_P", "DISTINCT", "DO", 
  "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", "ELSE", "ENABLE_P", "ENCODING", 
  "ENCRYPTED", "END_P", "ESCAPE", "EXCEPT", "EXCLUDING", "EXCLUSIVE", 
  "EXECUTE", "EXISTS", "EXPLAIN", "EXTERNAL", "EXTRACT", "FALSE_P", 
  "FETCH", "FIRST_P", "FLOAT_P", "FOR", "FORCE", "FOREIGN", "FORWARD", 
  "FREEZE", "FROM", "FULL", "FUNCTION", "GLOBAL", "GRANT", "GRANTED", 
  "GREATEST", "GROUP_P", "HANDLER", "HAVING", "HEADER_P", "HOLD", 
  "HOUR_P", "IF_P", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P", 
  "IN_P", "INCLUDING", "INCREMENT", "INDEX", "INDEXES", "INHERIT", 
  "INHERITS", "INITIALLY", "INNER_P", "INOUT", "INPUT_P", "INSENSITIVE", 
  "INSERT", "INSTEAD", "INT_P", "INTEGER", "INTERSECT", "INTERVAL", 
  "INTO", "INVOKER", "IS", "ISNULL", "ISOLATION", "JOIN", "KEY", 
  "LANCOMPILER", "LANGUAGE", "LARGE_P", "LAST_P", "LEADING", "LEAST", 
  "LEFT", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LOAD", "LOCAL", 
  "LOCALTIME", "LOCALTIMESTAMP", "LOCATION", "LOCK_P", "LOGIN_P", "MATCH", 
  "MAXVALUE", "MINUTE_P", "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAMES", 
  "NATIONAL", "NATURAL", "NCHAR", "NEW", "NEXT", "NO", "NOCREATEDB", 
  "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT", "NOLOGIN_P", "NONE", 
  "NOSUPERUSER", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", 
  "NULL_P", "NULLIF", "NUMERIC", "OBJECT_P", "OF", "OFF", "OFFSET", 
  "OIDS", "OLD", "ON", "ONLY", "OPERATOR", "OPTION", "OR", "ORDER", 
  "OUT_P", "OUTER_P", "OVERLAPS", "OVERLAY", "OWNED", "OWNER", "PARTIAL", 
  "PASSWORD", "PLACING", "POSITION", "PRECISION", "PRESERVE", "PREPARE", 
  "PREPARED", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", 
  "QUOTE", "READ", "REAL", "REASSIGN", "RECHECK", "REFERENCES", "REINDEX", 
  "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "RESET", 
  "RESTART", "RESTRICT", "RETURNING", "RETURNS", "REVOKE", "RIGHT", 
  "ROLE", "ROLLBACK", "ROW", "ROWS", "RULE", "SAVEPOINT", "SCHEMA", 
  "SCROLL", "SECOND_P", "SECURITY", "SELECT", "SEQUENCE", "SERIALIZABLE", 
  "SESSION", "SESSION_USER", "SET", "SETOF", "SHARE", "SHOW", "SIMILAR", 
  "SIMPLE", "SMALLINT", "SOME", "STABLE", "START", "STATEMENT", 
  "STATISTICS", "STDIN", "STDOUT", "STORAGE", "STRICT_P", "SUBSTRING", 
  "SUPERUSER_P", "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE", "TABLESPACE", 
  "TEMP", "TEMPLATE", "TEMPORARY", "THEN", "TIME", "TIMESTAMP", "TO", 
  "TRAILING", "TRANSACTION", "TREAT", "TRIGGER", "TRIM", "TRUE_P", 
  "TRUNCATE", "TRUSTED", "TYPE_P", "UNCOMMITTED", "UNENCRYPTED", "UNION", 
  "UNIQUE", "UNKNOWN", "UNLISTEN", "UNTIL", "UPDATE", "USER", "USING", 
  "VACUUM", "VALID", "VALIDATOR", "VALUES", "VARCHAR", "VARYING", 
  "VERBOSE", "VIEW", "VOLATILE", "WHEN", "WHERE", "WITH", "WITHOUT", 
  "WORK", "WRITE", "YEAR_P", "ZONE", "WITH_CASCADED", "WITH_LOCAL", 
  "WITH_CHECK", "IDENT", "FCONST", "SCONST", "BCONST", "XCONST", "Op", 
  "ICONST", "PARAM", "'='", "'<'", "'>'", "POSTFIXOP", "'+'", "'-'", 
  "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", 
  "TYPECAST", "'.'", "';'", "','", "':'", "$accept", "stmtblock", 
  "stmtmulti", "stmt", "CreateRoleStmt", "opt_with", "OptRoleList", 
  "OptRoleElem", "CreateUserStmt", "AlterRoleStmt", "AlterRoleSetStmt", 
  "AlterUserStmt", "AlterUserSetStmt", "DropRoleStmt", "DropUserStmt", 
  "CreateGroupStmt", "AlterGroupStmt", "add_drop", "DropGroupStmt", 
  "CreateSchemaStmt", "OptSchemaName", "OptSchemaEltList", "schema_stmt", 
  "VariableSetStmt", "set_rest", "var_name", "var_list_or_default", 
  "var_list", "var_value", "iso_level", "opt_boolean", "zone_value", 
  "opt_encoding", "ColId_or_Sconst", "VariableShowStmt", 
  "VariableResetStmt", "ConstraintsSetStmt", "constraints_set_list", 
  "constraints_set_mode", "CheckPointStmt", "AlterTableStmt", 
  "alter_table_cmds", "alter_table_cmd", "alter_rel_cmds", 
  "alter_rel_cmd", "alter_column_default", "opt_drop_behavior", 
  "alter_using", "ClosePortalStmt", "CopyStmt", "copy_from", 
  "copy_file_name", "copy_opt_list", "copy_opt_item", "opt_binary", 
  "opt_oids", "copy_delimiter", "opt_using", "CreateStmt", "OptTemp", 
  "OptTableElementList", "TableElementList", "TableElement", "columnDef", 
  "ColQualList", "ColConstraint", "ColConstraintElem", "ConstraintAttr", 
  "TableLikeClause", "TableLikeOptionList", "TableLikeOption", 
  "TableConstraint", "ConstraintElem", "opt_column_list", "columnList", 
  "columnElem", "key_match", "key_actions", "key_update", "key_delete", 
  "key_action", "OptInherit", "OptWith", "OnCommitOption", 
  "OptTableSpace", "OptConsTableSpace", "CreateAsStmt", "OptCreateAs", 
  "CreateAsList", "CreateAsElement", "CreateSeqStmt", "AlterSeqStmt", 
  "OptSeqList", "OptSeqElem", "opt_by", "NumericOnly", "FloatOnly", 
  "IntegerOnly", "CreatePLangStmt", "opt_trusted", "handler_name", 
  "opt_validator", "opt_lancompiler", "DropPLangStmt", "opt_procedural", 
  "CreateTableSpaceStmt", "OptTableSpaceOwner", "DropTableSpaceStmt", 
  "CreateTrigStmt", "TriggerActionTime", "TriggerEvents", 
  "TriggerOneEvent", "TriggerForSpec", "TriggerForOpt", "TriggerForType", 
  "TriggerFuncArgs", "TriggerFuncArg", "OptConstrFromTable", 
  "ConstraintAttributeSpec", "ConstraintDeferrabilitySpec", 
  "ConstraintTimeSpec", "DropTrigStmt", "CreateAssertStmt", 
  "DropAssertStmt", "DefineStmt", "definition", "def_list", "def_elem", 
  "def_arg", "aggr_args", "aggr_args_list", "old_aggr_definition", 
  "old_aggr_list", "old_aggr_elem", "CreateOpClassStmt", 
  "opclass_item_list", "opclass_item", "opt_default", "opt_recheck", 
  "DropOpClassStmt", "DropOwnedStmt", "ReassignOwnedStmt", "DropStmt", 
  "drop_type", "any_name_list", "any_name", "attrs", "TruncateStmt", 
  "CommentStmt", "comment_type", "comment_text", "FetchStmt", 
  "fetch_direction", "from_in", "GrantStmt", "RevokeStmt", "privileges", 
  "privilege_list", "privilege", "privilege_target", "grantee_list", 
  "grantee", "opt_grant_grant_option", "function_with_argtypes_list", 
  "function_with_argtypes", "GrantRoleStmt", "RevokeRoleStmt", 
  "opt_grant_admin_option", "opt_granted_by", "IndexStmt", 
  "index_opt_unique", "access_method_clause", "index_params", 
  "index_elem", "opt_class", "CreateFunctionStmt", "opt_or_replace", 
  "func_args", "func_args_list", "func_arg", "arg_class", "param_name", 
  "func_return", "func_type", "createfunc_opt_list", 
  "common_func_opt_item", "createfunc_opt_item", "func_as", 
  "opt_definition", "AlterFunctionStmt", "alterfunc_opt_list", 
  "opt_restrict", "RemoveFuncStmt", "RemoveAggrStmt", "RemoveOperStmt", 
  "oper_argtypes", "any_operator", "CreateCastStmt", "cast_context", 
  "DropCastStmt", "opt_if_exists", "ReindexStmt", "reindex_type", 
  "opt_force", "RenameStmt", "opt_column", "AlterObjectSchemaStmt", 
  "AlterOwnerStmt", "RuleStmt", "@1", "RuleActionList", "RuleActionMulti", 
  "RuleActionStmt", "RuleActionStmtOrEmpty", "event", "opt_instead", 
  "DropRuleStmt", "NotifyStmt", "ListenStmt", "UnlistenStmt", 
  "TransactionStmt", "opt_transaction", "transaction_mode_item", 
  "transaction_mode_list", "transaction_mode_list_or_empty", "ViewStmt", 
  "opt_check_option", "LoadStmt", "CreatedbStmt", "createdb_opt_list", 
  "createdb_opt_item", "opt_equal", "AlterDatabaseStmt", 
  "AlterDatabaseSetStmt", "alterdb_opt_list", "alterdb_opt_item", 
  "DropdbStmt", "CreateDomainStmt", "AlterDomainStmt", "opt_as", 
  "CreateConversionStmt", "ClusterStmt", "VacuumStmt", "AnalyzeStmt", 
  "analyze_keyword", "opt_verbose", "opt_full", "opt_freeze", 
  "opt_name_list", "ExplainStmt", "ExplainableStmt", "opt_analyze", 
  "PrepareStmt", "prep_type_clause", "prep_type_list", "PreparableStmt", 
  "ExecuteStmt", "execute_param_clause", "DeallocateStmt", "InsertStmt", 
  "insert_rest", "insert_column_list", "insert_column_item", 
  "returning_clause", "DeleteStmt", "using_clause", "LockStmt", 
  "opt_lock", "lock_type", "opt_nowait", "UpdateStmt", "set_clause_list", 
  "set_clause", "single_set_clause", "multiple_set_clause", "set_target", 
  "set_target_list", "DeclareCursorStmt", "cursor_options", "opt_hold", 
  "SelectStmt", "select_with_parens", "select_no_parens", "select_clause", 
  "simple_select", "into_clause", "OptTempTableName", "opt_table", 
  "opt_all", "opt_distinct", "opt_sort_clause", "sort_clause", 
  "sortby_list", "sortby", "select_limit", "opt_select_limit", 
  "select_limit_value", "select_offset_value", "group_clause", 
  "having_clause", "for_locking_clause", "opt_for_locking_clause", 
  "for_locking_items", "for_locking_item", "locked_rels_list", 
  "values_clause", "from_clause", "from_list", "table_ref", 
  "joined_table", "alias_clause", "join_type", "join_outer", "join_qual", 
  "relation_expr", "relation_expr_opt_alias", "func_table", 
  "where_clause", "TableFuncElementList", "TableFuncElement", "Typename", 
  "opt_array_bounds", "SimpleTypename", "ConstTypename", "GenericType", 
  "Numeric", "opt_float", "opt_numeric", "opt_decimal", "Bit", "ConstBit", 
  "BitWithLength", "BitWithoutLength", "Character", "ConstCharacter", 
  "CharacterWithLength", "CharacterWithoutLength", "character", 
  "opt_varying", "opt_charset", "ConstDatetime", "ConstInterval", 
  "opt_timezone", "opt_interval", "a_expr", "b_expr", "c_expr", 
  "func_expr", "row", "sub_type", "all_Op", "MathOp", "qual_Op", 
  "qual_all_Op", "subquery_Op", "expr_list", "extract_list", "type_list", 
  "array_expr_list", "array_expr", "extract_arg", "overlay_list", 
  "overlay_placing", "position_list", "substr_list", "substr_from", 
  "substr_for", "trim_list", "in_expr", "case_expr", "when_clause_list", 
  "when_clause", "case_default", "case_arg", "columnref", 
  "indirection_el", "indirection", "opt_indirection", "opt_asymmetric", 
  "ctext_expr", "ctext_expr_list", "ctext_row", "target_list", 
  "target_el", "relation_name", "qualified_name_list", "qualified_name", 
  "name_list", "name", "database_name", "access_method", "attr_name", 
  "index_name", "file_name", "func_name", "AexprConst", "Iconst", 
  "Sconst", "RoleId", "SignedIconst", "ColId", "type_name", 
  "function_name", "ColLabel", "unreserved_keyword", "col_name_keyword", 
  "func_name_keyword", "reserved_keyword", "SpecialRuleRelation", 0
};
#endif

# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
   token YYLEX-NUM.  */
static const unsigned short yytoknum[] =
{
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
     585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
     595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
     605,   606,   607,   608,    61,    60,    62,   609,    43,    45,
      42,    47,    37,    94,   610,    91,    93,    40,    41,   611,
      46,    59,    44,    58
};
# endif

/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
static const unsigned short yyr1[] =
{
       0,   374,   375,   376,   376,   377,   377,   377,   377,   377,
     377,   377,   377,   377,   377,   377,   377,   377,   377,   377,
     377,   377,   377,   377,   377,   377,   377,   377,   377,   377,
     377,   377,   377,   377,   377,   377,   377,   377,   377,   377,
     377,   377,   377,   377,   377,   377,   377,   377,   377,   377,
     377,   377,   377,   377,   377,   377,   377,   377,   377,   377,
     377,   377,   377,   377,   377,   377,   377,   377,   377,   377,
     377,   377,   377,   377,   377,   377,   377,   377,   377,   377,
     377,   377,   377,   377,   377,   377,   377,   377,   377,   377,
     377,   378,   379,   379,   380,   380,   381,   381,   381,   381,
     381,   381,   381,   381,   381,   381,   381,   381,   381,   381,
     381,   381,   381,   381,   381,   381,   381,   381,   381,   381,
     382,   383,   384,   384,   385,   386,   386,   387,   387,   388,
     388,   389,   390,   391,   391,   392,   392,   393,   393,   394,
     394,   395,   395,   396,   396,   396,   396,   396,   396,   397,
     397,   397,   398,   398,   398,   398,   398,   398,   398,   398,
     398,   399,   399,   400,   400,   401,   401,   402,   402,   402,
     403,   403,   403,   403,   404,   404,   404,   404,   405,   405,
     405,   405,   405,   405,   405,   406,   406,   406,   407,   407,
     408,   408,   408,   408,   408,   409,   409,   409,   409,   409,
     410,   411,   411,   412,   412,   413,   414,   414,   415,   415,
     416,   416,   416,   416,   416,   416,   416,   416,   416,   416,
     416,   416,   416,   416,   416,   416,   416,   416,   416,   416,
     416,   416,   417,   417,   418,   418,   418,   418,   419,   419,
     420,   420,   420,   421,   421,   422,   423,   423,   424,   424,
     425,   425,   425,   426,   426,   427,   427,   427,   427,   427,
     427,   427,   427,   427,   427,   428,   428,   429,   429,   430,
     430,   431,   431,   432,   432,   433,   433,   433,   433,   433,
     433,   433,   434,   434,   435,   435,   436,   436,   436,   437,
     438,   438,   439,   439,   439,   440,   440,   440,   440,   440,
     440,   440,   441,   441,   441,   441,   442,   443,   443,   444,
     444,   444,   444,   444,   444,   445,   445,   446,   446,   446,
     446,   447,   447,   448,   448,   449,   450,   450,   450,   450,
     451,   451,   451,   451,   451,   452,   453,   454,   454,   454,
     454,   454,   455,   455,   456,   456,   456,   456,   457,   457,
     457,   457,   458,   458,   459,   459,   460,   461,   461,   462,
     462,   463,   464,   465,   466,   466,   467,   467,   467,   467,
     467,   467,   467,   467,   467,   467,   467,   468,   468,   469,
     469,   470,   470,   471,   472,   472,   473,   473,   474,   474,
     475,   475,   476,   476,   477,   477,   478,   478,   479,   480,
     480,   481,   481,   482,   482,   483,   483,   484,   484,   484,
     485,   485,   485,   486,   486,   487,   487,   488,   488,   489,
     489,   489,   490,   490,   490,   490,   490,   490,   491,   491,
     492,   492,   492,   492,   492,   493,   493,   494,   494,   495,
     495,   496,   497,   498,   498,   498,   498,   498,   498,   499,
     500,   500,   501,   501,   502,   502,   502,   502,   502,   502,
     503,   503,   504,   504,   505,   506,   506,   507,   508,   509,
     509,   510,   510,   510,   510,   511,   511,   512,   512,   513,
     513,   514,   515,   516,   516,   517,   517,   517,   517,   517,
     517,   517,   517,   518,   518,   519,   519,   520,   520,   521,
     522,   522,   522,   522,   522,   522,   522,   522,   522,   522,
     522,   522,   523,   523,   523,   523,   523,   523,   523,   523,
     523,   523,   523,   523,   524,   524,   525,   525,   525,   525,
     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
     526,   526,   526,   526,   526,   527,   527,   528,   529,   529,
     530,   530,   530,   531,   531,   532,   532,   532,   532,   533,
     533,   533,   533,   533,   533,   533,   533,   534,   534,   535,
     535,   536,   536,   537,   537,   538,   539,   540,   540,   541,
     541,   542,   542,   543,   543,   544,   544,   545,   545,   546,
     546,   547,   547,   547,   548,   548,   548,   549,   549,   550,
     550,   551,   551,   552,   552,   553,   553,   553,   553,   553,
     554,   554,   554,   554,   555,   556,   557,   557,   557,   558,
     558,   559,   559,   559,   559,   559,   559,   559,   559,   559,
     559,   560,   560,   560,   561,   561,   562,   562,   563,   564,
     564,   565,   565,   566,   566,   567,   567,   568,   568,   569,
     569,   569,   569,   570,   570,   571,   571,   572,   572,   572,
     573,   574,   574,   575,   575,   575,   576,   576,   577,   577,
     578,   578,   578,   578,   578,   578,   578,   578,   578,   578,
     578,   578,   578,   578,   578,   579,   579,   580,   580,   580,
     580,   580,   580,   581,   581,   581,   581,   581,   581,   581,
     581,   581,   581,   583,   582,   584,   584,   584,   585,   585,
     586,   586,   586,   586,   586,   587,   587,   588,   588,   588,
     588,   589,   589,   589,   590,   590,   591,   592,   593,   593,
     594,   594,   594,   594,   594,   594,   594,   594,   594,   594,
     594,   594,   594,   594,   595,   595,   595,   596,   596,   596,
     597,   597,   597,   598,   598,   599,   599,   600,   600,   600,
     600,   601,   602,   603,   603,   604,   604,   604,   604,   604,
     604,   604,   604,   604,   604,   604,   604,   605,   605,   606,
     607,   607,   608,   608,   609,   610,   610,   611,   612,   612,
     612,   612,   612,   613,   613,   614,   615,   615,   615,   616,
     616,   616,   617,   617,   618,   618,   619,   619,   620,   620,
     621,   621,   622,   622,   623,   624,   624,   624,   624,   624,
     624,   625,   625,   626,   627,   627,   628,   628,   629,   629,
     629,   629,   630,   630,   631,   631,   632,   632,   633,   634,
     634,   634,   635,   635,   636,   637,   637,   638,   639,   639,
     640,   641,   641,   642,   642,   642,   642,   642,   642,   642,
     642,   643,   643,   644,   645,   645,   646,   646,   647,   648,
     649,   650,   650,   651,   652,   652,   652,   652,   652,   653,
     653,   653,   654,   654,   655,   655,   656,   656,   656,   656,
     657,   657,   658,   658,   658,   658,   658,   659,   659,   660,
     660,   660,   660,   660,   660,   660,   660,   661,   661,   662,
     662,   662,   663,   663,   663,   663,   664,   664,   665,   666,
     666,   667,   667,   667,   667,   668,   668,   668,   668,   668,
     669,   669,   670,   670,   671,   672,   672,   673,   673,   674,
     674,   675,   675,   676,   676,   677,   677,   678,   678,   679,
     679,   680,   680,   681,   681,   682,   682,   682,   682,   682,
     682,   682,   682,   682,   682,   682,   683,   683,   683,   683,
     683,   683,   684,   684,   684,   684,   685,   685,   685,   685,
     686,   686,   687,   687,   688,   688,   688,   688,   689,   689,
     689,   690,   691,   691,   692,   692,   693,   694,   694,   694,
     694,   695,   695,   695,   696,   696,   696,   696,   696,   696,
     696,   696,   697,   697,   697,   697,   697,   698,   699,   699,
     699,   699,   699,   699,   699,   699,   699,   699,   699,   700,
     700,   701,   701,   701,   702,   702,   702,   703,   703,   704,
     704,   705,   706,   707,   707,   708,   708,   709,   710,   711,
     711,   711,   711,   711,   711,   712,   712,   713,   713,   714,
     714,   714,   714,   715,   716,   716,   716,   717,   717,   717,
     717,   717,   717,   717,   717,   717,   717,   717,   717,   717,
     717,   718,   718,   718,   718,   718,   718,   718,   718,   718,
     718,   718,   718,   718,   718,   718,   718,   718,   718,   718,
     718,   718,   718,   718,   718,   718,   718,   718,   718,   718,
     718,   718,   718,   718,   718,   718,   718,   718,   718,   718,
     718,   718,   718,   718,   718,   718,   718,   718,   718,   718,
     718,   718,   718,   718,   718,   718,   718,   719,   719,   719,
     719,   719,   719,   719,   719,   719,   719,   719,   719,   719,
     719,   719,   719,   719,   719,   719,   719,   720,   720,   720,
     720,   720,   720,   720,   720,   720,   720,   720,   721,   721,
     721,   721,   721,   721,   721,   721,   721,   721,   721,   721,
     721,   721,   721,   721,   721,   721,   721,   721,   721,   721,
     721,   721,   721,   721,   721,   721,   721,   721,   721,   721,
     721,   721,   722,   722,   722,   723,   723,   723,   724,   724,
     725,   725,   725,   725,   725,   725,   725,   725,   725,   726,
     726,   727,   727,   728,   728,   728,   728,   728,   728,   729,
     729,   730,   730,   731,   731,   732,   732,   733,   733,   734,
     734,   734,   734,   734,   734,   734,   734,   735,   735,   736,
     737,   737,   738,   738,   738,   738,   738,   738,   739,   740,
     741,   741,   741,   742,   742,   743,   744,   744,   745,   746,
     746,   747,   747,   748,   748,   749,   749,   749,   749,   750,
     750,   751,   751,   752,   752,   753,   753,   754,   754,   755,
     756,   756,   757,   757,   757,   758,   758,   759,   759,   760,
     760,   761,   761,   762,   763,   764,   765,   766,   767,   768,
     768,   769,   769,   769,   769,   769,   769,   769,   769,   769,
     769,   769,   770,   771,   772,   773,   773,   774,   774,   774,
     775,   775,   776,   776,   776,   777,   777,   777,   777,   777,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   778,   778,
     778,   778,   778,   778,   778,   778,   778,   778,   779,   779,
     779,   779,   779,   779,   779,   779,   779,   779,   779,   779,
     779,   779,   779,   779,   779,   779,   779,   779,   779,   779,
     779,   779,   779,   779,   779,   779,   779,   779,   779,   779,
     779,   779,   779,   779,   779,   779,   780,   780,   780,   780,
     780,   780,   780,   780,   780,   780,   780,   780,   780,   780,
     780,   780,   780,   780,   780,   780,   781,   781,   781,   781,
     781,   781,   781,   781,   781,   781,   781,   781,   781,   781,
     781,   781,   781,   781,   781,   781,   781,   781,   781,   781,
     781,   781,   781,   781,   781,   781,   781,   781,   781,   781,
     781,   781,   781,   781,   781,   781,   781,   781,   781,   781,
     781,   781,   781,   781,   781,   781,   781,   781,   781,   781,
     781,   781,   781,   781,   781,   781,   781,   781,   781,   781,
     781,   781,   781,   781,   781,   781,   781,   781,   781,   781,
     782,   782
};

/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
static const unsigned char yyr2[] =
{
       0,     2,     1,     3,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       0,     5,     1,     0,     2,     0,     2,     2,     3,     3,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     3,     3,     2,     2,     2,     2,     3,     3,
       5,     5,     5,     4,     5,     5,     4,     3,     5,     3,
       5,     5,     6,     1,     1,     3,     5,     6,     4,     1,
       0,     2,     0,     1,     1,     1,     1,     1,     1,     2,
       3,     3,     3,     3,     3,     2,     5,     2,     2,     3,
       3,     1,     3,     1,     1,     1,     3,     1,     1,     1,
       2,     2,     2,     1,     1,     1,     1,     1,     1,     1,
       3,     6,     1,     1,     1,     1,     1,     0,     1,     1,
       2,     3,     4,     3,     2,     2,     3,     4,     3,     2,
       4,     1,     1,     1,     1,     1,     4,     4,     1,     3,
       3,     4,     6,     6,     6,     6,     4,     6,     2,     4,
       3,     3,     3,     3,     3,     3,     3,     3,     3,     2,
       3,     1,     1,     3,     3,     3,     2,     2,     3,     2,
       1,     1,     0,     2,     0,     2,    10,     6,     1,     1,
       1,     1,     1,     2,     0,     1,     1,     3,     3,     1,
       1,     3,     3,     3,     4,     1,     0,     2,     0,     3,
       0,     1,     0,    11,    12,     1,     1,     2,     2,     2,
       2,     0,     1,     0,     1,     3,     1,     1,     1,     3,
       2,     0,     3,     1,     1,     2,     1,     3,     4,     4,
       2,     5,     1,     2,     2,     2,     3,     2,     0,     2,
       2,     2,     2,     2,     2,     3,     1,     4,     6,     7,
      11,     3,     0,     1,     3,     1,     2,     2,     2,     0,
       1,     1,     2,     2,     0,     3,     3,     2,     1,     1,
       2,     2,     4,     0,     2,     2,     2,     0,     3,     4,
       4,     0,     2,     0,     4,     0,    10,     3,     0,     1,
       3,     1,     5,     4,     2,     0,     2,     1,     2,     3,
       2,     2,     2,     2,     3,     3,     3,     1,     0,     1,
       1,     1,     2,     1,     5,     9,     1,     0,     1,     2,
       2,     0,     2,     0,     5,     7,     1,     0,     6,     2,
       0,     3,     5,    14,    19,     1,     1,     1,     3,     5,
       1,     1,     1,     3,     0,     1,     0,     1,     1,     1,
       3,     0,     1,     1,     1,     1,     1,     1,     2,     0,
       1,     2,     1,     2,     0,     2,     1,     2,     2,     6,
       8,     8,     4,     5,     4,     4,     4,     3,     7,     3,
       1,     3,     3,     1,     1,     1,     1,     1,     1,     1,
       3,     3,     1,     3,     3,     1,     3,     3,    12,     1,
       3,     4,     7,     4,     2,     1,     0,     1,     0,     7,
       9,     5,     6,     6,     4,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     3,     1,     2,     2,     3,     4,
       6,     7,     7,     9,     8,     8,     6,     8,     9,     7,
      10,     7,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     4,     2,     4,     2,
       0,     1,     1,     1,     1,     2,     2,     1,     1,     1,
       2,     2,     1,     2,     2,     1,     1,     7,     7,    10,
       1,     1,     2,     1,     3,     1,     1,     1,     1,     1,
       2,     2,     2,     2,     2,     2,     2,     1,     3,     1,
       2,     3,     0,     1,     3,     2,     6,     6,     9,     3,
       0,     3,     0,    13,    14,     1,     0,     2,     0,     1,
       3,     2,     2,     4,     1,     2,     0,     9,     7,     2,
       0,     3,     2,     1,     3,     3,     3,     2,     2,     1,
       1,     1,     1,     2,     1,     1,     1,     4,     5,     1,
       2,     4,     5,     1,     1,     1,     1,     3,     3,     2,
       2,     2,     2,     1,     1,     3,     2,     0,     5,     1,
       2,     1,     0,     5,     7,     5,     7,     7,     9,     1,
       3,     3,     3,     1,     3,    11,    10,     2,     2,     0,
       9,     2,     0,     4,     4,     4,     1,     1,     1,     0,
       7,     6,     6,     7,     6,     6,     9,     6,     6,     6,
       8,     8,     6,     6,     6,     1,     0,     7,     6,     7,
       6,     6,     6,     7,     6,     6,     6,     7,     9,     9,
       6,     6,     6,     0,    14,     1,     1,     3,     3,     1,
       1,     1,     1,     1,     1,     1,     0,     1,     1,     1,
       1,     1,     1,     0,     6,     8,     2,     2,     2,     2,
       2,     3,     3,     2,     2,     2,     2,     3,     2,     5,
       4,     3,     3,     3,     1,     1,     0,     3,     2,     2,
       1,     3,     2,     1,     0,     8,    10,     2,     3,     3,
       0,     2,     5,     2,     0,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     4,     3,     3,     1,     0,     5,
       5,     4,     2,     0,     4,     3,     5,     6,     4,     6,
       6,     5,     7,     1,     0,    10,     4,     2,     1,     4,
       5,     5,     2,     4,     1,     1,     1,     0,     1,     0,
       1,     0,     3,     0,     4,     1,     1,     1,     1,     1,
       1,     1,     0,     5,     3,     0,     1,     3,     1,     1,
       1,     1,     3,    12,     3,     0,     2,     3,     5,     1,
       4,     2,     1,     3,     2,     2,     0,     6,     2,     0,
       5,     3,     0,     2,     2,     2,     3,     1,     3,     1,
       2,     1,     0,     7,     1,     3,     1,     1,     3,     5,
       2,     1,     3,     7,     0,     3,     2,     2,     2,     0,
       2,     2,     1,     1,     3,     3,     1,     2,     4,     4,
       1,     1,     8,     1,     4,     4,     4,     2,     0,     3,
       3,     4,     4,     4,     4,     2,     1,     1,     0,     1,
       1,     0,     1,     5,     1,     0,     1,     0,     3,     1,
       3,     3,     2,     2,     1,     4,     4,     2,     2,     4,
       1,     0,     1,     1,     1,     3,     0,     2,     0,     1,
       3,     1,     0,     1,     2,     4,     4,     2,     0,     2,
       3,     2,     0,     1,     3,     1,     2,     1,     2,     5,
       6,     5,     1,     2,     1,     4,     3,     4,     5,     4,
       5,     4,     5,     2,     4,     1,     2,     2,     2,     1,
       1,     0,     4,     2,     1,     2,     2,     4,     1,     2,
       3,     1,     2,     0,     1,     3,     2,     2,     3,     5,
       6,     3,     4,     0,     1,     1,     1,     1,     1,     2,
       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     2,     2,     2,     2,     2,     1,     3,
       0,     5,     3,     0,     5,     3,     0,     1,     1,     1,
       1,     5,     2,     1,     1,     1,     1,     5,     2,     2,
       2,     1,     3,     3,     2,     1,     0,     3,     0,     5,
       2,     5,     2,     1,     3,     3,     0,     1,     1,     1,
       1,     1,     1,     3,     3,     3,     3,     3,     3,     3,
       0,     1,     3,     5,     2,     2,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     2,     2,     3,     3,
       2,     3,     5,     4,     6,     3,     5,     4,     6,     4,
       6,     5,     7,     3,     2,     4,     2,     3,     3,     4,
       3,     4,     3,     4,     5,     6,     6,     7,     6,     7,
       6,     7,     3,     4,     4,     6,     2,     1,     3,     2,
       2,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       3,     2,     2,     5,     6,     6,     7,     1,     1,     2,
       4,     1,     1,     1,     2,     2,     2,     1,     3,     4,
       5,     5,     4,     1,     1,     4,     1,     4,     1,     4,
       1,     4,     1,     1,     1,     1,     6,     4,     4,     4,
       4,     6,     5,     5,     5,     4,     6,     4,     6,     4,
       4,     4,     4,     3,     5,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       4,     1,     4,     1,     4,     1,     2,     1,     2,     1,
       3,     3,     0,     3,     1,     1,     3,     3,     3,     1,
       1,     1,     1,     1,     1,     1,     1,     4,     3,     2,
       3,     0,     3,     3,     2,     2,     1,     0,     2,     2,
       3,     2,     1,     1,     3,     5,     1,     2,     4,     2,
       0,     1,     0,     1,     2,     2,     2,     3,     5,     1,
       2,     0,     2,     1,     0,     1,     1,     1,     3,     3,
       1,     3,     3,     1,     1,     1,     1,     1,     3,     1,
       2,     1,     3,     1,     1,     1,     1,     1,     1,     1,
       2,     1,     1,     1,     1,     1,     2,     3,     6,     1,
       1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1
};

/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
   means the default is an error.  */
static const unsigned short yydefact[] =
{
      90,   746,     0,   805,   804,   746,   205,     0,   798,     0,
     746,   266,   281,     0,     0,     0,   397,   746,     0,   822,
     530,     0,     0,     0,     0,   908,   530,     0,     0,     0,
       0,     0,     0,     0,   746,     0,   915,     0,     0,     0,
     908,     0,     0,   809,     0,     0,     0,     2,     4,    39,
      40,    15,    14,    17,    16,    56,    57,    31,     9,    48,
      34,    87,    88,    86,    23,    19,    13,    20,    24,    36,
      25,    35,    12,    33,    51,    37,    54,    38,    55,    26,
      46,    44,    32,    49,    50,    71,    53,    82,    22,    61,
      62,    77,    63,    78,    64,    30,     8,    74,    73,    75,
      27,    47,    72,    76,    10,    11,    79,    52,    69,    66,
      83,    81,    89,    67,    41,     5,     6,    58,    29,     7,
      28,    21,    85,    18,   807,    60,    70,    59,    42,    65,
      45,    68,    84,    43,    80,   883,   882,   917,   886,   893,
     745,   744,   730,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     754,  1340,  1341,  1342,  1343,  1344,  1345,  1346,  1347,  1348,
    1349,  1350,  1351,  1352,  1353,  1354,  1355,  1548,  1549,  1550,
    1356,  1357,  1358,  1359,  1360,  1361,  1551,  1552,  1362,  1363,
    1364,  1365,  1366,  1553,  1367,  1368,  1369,  1370,  1371,  1372,
    1373,  1554,  1374,  1375,  1376,  1377,  1378,  1379,  1380,  1381,
    1382,  1383,  1555,  1556,  1384,  1385,  1386,  1387,  1388,  1389,
    1390,  1391,  1392,  1393,  1394,  1395,  1396,  1397,  1398,  1399,
    1400,  1401,  1402,  1557,  1403,  1404,  1558,  1405,  1406,  1559,
    1407,  1408,  1409,  1410,  1411,  1560,  1412,  1413,  1414,  1415,
    1416,  1417,  1418,  1419,  1420,  1421,  1422,  1423,  1424,  1425,
    1561,  1426,  1427,  1428,  1429,  1562,  1563,  1564,  1430,  1431,
    1432,  1433,  1434,  1435,  1436,  1565,  1437,  1438,  1439,  1440,
    1441,  1442,  1443,  1444,  1445,  1446,  1447,  1448,  1449,  1450,
    1451,  1566,  1567,  1452,  1453,  1454,  1455,  1456,  1457,  1458,
    1568,  1459,  1460,  1461,  1462,  1569,  1570,  1463,  1464,  1465,
    1466,  1467,  1571,  1572,  1468,  1469,  1470,  1471,  1573,  1574,
    1474,  1472,  1473,  1475,  1476,  1477,  1478,  1479,  1480,  1575,
    1481,  1482,  1483,  1484,  1485,  1486,  1487,  1488,  1489,  1490,
    1491,  1492,  1493,  1494,  1495,  1576,  1496,  1497,  1498,  1499,
    1500,  1501,  1502,  1503,  1504,  1505,  1506,  1577,  1507,  1508,
    1509,  1578,  1510,  1511,  1512,  1513,  1514,  1515,  1516,  1520,
    1579,  1517,  1518,  1519,  1521,  1522,  1523,  1524,  1580,  1581,
    1525,  1582,  1526,  1583,  1527,  1528,  1529,  1530,  1531,  1532,
    1533,  1534,  1535,  1536,  1537,  1538,  1584,  1585,  1539,  1540,
    1541,  1542,  1543,  1544,  1545,  1546,  1547,  1327,   245,  1303,
    1328,  1329,  1681,  1680,  1299,   797,     0,  1296,  1295,   397,
       0,   733,   265,     0,     0,     0,     0,     0,     0,     0,
     475,     0,     0,     0,     0,     0,     0,     0,   140,     0,
     276,   275,     0,   386,     0,   585,     0,     0,   397,     0,
       0,     0,  1472,   836,   874,     0,     0,     0,   662,   491,
       0,   490,     0,     0,   488,     0,     0,   396,     0,     0,
     492,   486,   485,     0,     0,   489,     0,   487,     0,     0,
     734,   835,   821,   807,  1341,   538,   542,   533,   539,   534,
     531,   532,  1484,  1325,     0,     0,   527,   537,   551,   557,
     556,   555,     0,   550,   553,   558,     0,   727,  1296,  1323,
     761,  1308,   907,     0,     0,   529,   726,  1525,   825,     0,
       0,   666,     0,   667,     0,  1498,   738,   199,  1505,  1580,
    1525,   195,   161,  1345,     0,     0,   550,     0,   735,   736,
     914,   912,     0,  1372,  1440,  1451,  1494,  1505,  1580,  1525,
     149,     0,   194,  1505,  1580,  1525,   190,   754,     0,   729,
     728,     0,   988,     0,   984,   808,   811,     0,   949,   891,
       0,     1,    90,   806,   802,   911,   911,     0,   911,     0,
     887,     0,  1586,  1587,  1588,  1589,  1590,  1591,  1592,  1593,
    1594,  1595,  1596,  1597,  1598,  1599,  1600,  1601,  1602,  1603,
    1604,  1605,  1327,     0,     0,  1309,  1328,  1334,     0,   495,
      93,  1304,     0,     0,     0,     0,  1324,     0,     0,  1364,
    1208,  1218,  1216,  1217,  1210,  1211,  1212,  1213,  1214,  1215,
       0,   653,  1209,     0,    93,     0,     0,   365,     0,     0,
       0,     0,    93,     0,     0,   750,   753,   731,     0,     0,
    1279,  1300,     0,     0,     0,   512,     0,   521,   513,   518,
       0,   515,     0,     0,   523,     0,   514,   516,   517,   522,
       0,   519,   520,     0,     0,   742,   322,     0,     0,     0,
       0,     0,    93,   794,   280,   279,    93,   278,   277,  1364,
       0,   599,    93,     0,   142,   400,     0,   447,    93,     0,
       0,     0,     0,     0,     0,     0,     0,   837,     0,   849,
    1416,     0,   242,     0,     0,  1416,   785,  1416,     0,  1416,
     135,  1301,  1364,  1416,     0,     0,  1416,   127,  1416,     0,
    1416,   401,  1416,     0,  1416,   129,     0,  1416,   242,   493,
       0,   832,     0,   535,   544,   543,   541,   540,   536,  1326,
     545,   546,     0,   552,     0,     0,     0,     0,   852,  1297,
       0,   741,     0,     0,     0,   669,   669,   669,   737,   198,
     196,     0,     0,     0,     0,     0,     0,   743,     0,     0,
       0,  1548,  1549,  1550,  1272,     0,  1551,  1552,  1553,  1554,
    1173,  1182,  1174,  1176,  1183,  1555,  1556,  1393,  1557,  1558,
    1320,  1559,  1560,  1562,  1563,  1564,  1565,  1178,  1180,  1566,
    1567,     0,  1321,  1569,  1570,  1466,  1572,  1573,  1575,  1576,
    1184,  1578,  1579,  1580,  1581,  1582,  1583,  1319,     0,  1185,
    1585,  1327,  1312,  1314,  1315,  1219,  1322,  1281,     0,     0,
    1294,     0,  1163,     0,  1012,  1013,  1014,  1039,  1040,  1015,
    1045,  1046,  1058,  1016,     0,  1293,  1081,  1162,  1167,     0,
    1161,  1157,   898,  1290,  1273,     0,  1158,  1311,  1313,  1017,
    1328,   201,     0,   202,  1505,   150,   186,   157,   185,   189,
     158,   188,     0,  1362,   151,     0,   155,     0,     0,   193,
     191,     0,   732,   242,     0,   986,     0,   989,     0,   985,
     810,   807,  1286,  1285,  1287,     0,   885,   884,     3,   813,
     909,   910,     0,     0,     0,     0,     0,     0,     0,   942,
     931,   939,   943,   950,  1310,     0,     0,     0,     0,     0,
     496,     0,     0,     0,    92,   783,   781,     0,     0,     0,
       0,   788,     0,     0,   624,     0,     0,   625,   623,   626,
     639,   642,     0,   575,   133,   134,     0,     0,     0,     0,
       0,     0,   207,   232,     0,     0,     0,     0,     0,     0,
      95,   123,     0,     0,     0,   363,   686,   686,     0,     0,
     686,     0,     0,     0,   686,     0,   206,   208,   231,     0,
       0,     0,     0,     0,     0,     0,    95,   126,     0,   748,
     749,     0,   752,     0,  1606,  1607,  1608,  1609,  1610,  1611,
    1612,  1613,  1614,  1615,  1616,  1617,  1618,  1619,  1620,  1621,
    1622,  1623,  1624,  1625,  1626,  1627,  1628,  1629,  1630,  1631,
    1632,  1633,  1634,  1635,  1636,  1637,  1638,  1639,  1640,  1641,
    1642,  1643,  1644,  1645,  1646,  1647,  1648,  1649,  1650,  1651,
    1652,  1653,  1654,  1655,  1656,  1657,  1658,  1659,  1660,  1661,
    1662,  1663,  1664,  1665,  1666,  1667,  1668,  1669,  1670,  1671,
    1672,  1673,  1674,  1675,  1676,  1677,  1678,  1679,  1335,  1276,
    1275,  1306,  1336,  1337,  1338,  1339,  1280,   796,     0,     0,
       0,     0,     0,  1364,     0,     0,     0,     0,     0,     0,
     268,   251,   252,    93,   250,     0,     0,   444,     0,  1021,
    1056,  1028,  1056,  1056,  1036,  1036,  1030,  1018,  1019,  1063,
       0,  1056,  1033,  1022,     0,  1020,  1066,  1066,  1051,  1330,
       0,  1003,  1004,  1005,  1006,  1037,  1038,  1007,  1043,  1044,
    1008,  1080,  1017,  1331,     0,   764,   793,     0,    95,   476,
       0,   445,     0,    95,     0,   138,     0,     0,   406,   405,
       0,     0,   446,    95,   365,   358,   322,     0,     0,  1370,
       0,  1307,     0,     0,   877,   879,   878,     0,   876,     0,
     993,     0,   242,   240,   241,   442,   661,     0,     0,     0,
     242,     0,     0,  1416,     0,     0,     0,   242,     0,     0,
       0,     0,     0,     0,     0,  1416,   242,     0,     0,   484,
    1229,     0,   281,   814,   820,   816,   818,   817,   819,   815,
     526,  1381,  1409,  1434,  1499,  1503,     0,  1521,     0,   559,
     580,   554,     0,     0,   846,   839,     0,     0,   862,   528,
       0,   826,     0,     0,   668,   665,   664,   663,   197,   162,
       0,     0,     0,   582,  1498,   740,     0,     0,  1165,  1166,
    1055,  1042,  1271,     0,     0,  1050,  1049,     0,     0,     0,
       0,     0,  1026,  1025,  1024,  1164,  1232,     0,  1023,     0,
       0,     0,     0,  1056,  1056,  1054,  1100,     0,     0,  1027,
       0,     0,  1251,     0,  1257,     0,     0,     0,  1062,     0,
    1060,     0,     0,  1136,  1159,  1084,  1085,  1584,  1163,  1229,
       0,  1316,     0,     0,  1048,     0,  1080,     0,     0,     0,
    1284,  1227,     0,     0,  1114,  1225,     0,  1116,     0,     0,
       0,  1219,  1218,  1216,  1217,  1210,  1211,  1212,  1213,  1214,
    1215,     0,  1223,  1097,     0,     0,  1096,     0,     0,   952,
    1274,     0,   203,   204,   200,     0,   160,   159,     0,   183,
     184,   179,   381,     0,   154,   182,   379,   380,     0,   178,
     383,   164,   175,   177,   176,   174,   152,   163,   165,   167,
     168,   169,   153,   192,   499,     0,   990,     0,   952,   864,
     866,   867,     0,  1281,   799,  1289,     0,     0,   803,   891,
     896,   890,   895,   918,   919,   924,   894,     0,   948,   948,
     933,   927,   932,   928,   934,   941,   889,   930,   888,     0,
     944,     0,     0,   462,     0,     0,     0,     0,     0,   497,
       0,     0,     0,   780,   779,     0,     0,     0,     0,     0,
     791,   316,     0,   239,     0,     0,     0,     0,     0,     0,
       0,     0,   629,   630,   641,   640,   638,   610,   612,   611,
       0,  1332,   602,     0,   603,     0,     0,   609,   616,  1017,
     614,  1333,     0,     0,     0,     0,     0,     0,     0,   237,
       0,   236,     0,     0,     0,     0,     0,   649,   654,     0,
     122,   121,     0,     0,     0,     0,   367,   378,     0,     0,
       0,     0,    93,    93,   364,   685,   218,     0,     0,     0,
       0,     0,     0,     0,   229,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   125,   124,     0,
       0,   173,   747,   751,  1277,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   323,
     325,     0,     0,   254,  1330,     0,   465,   443,     0,  1003,
       0,     0,   997,  1069,  1070,  1071,  1068,  1072,  1067,     0,
    1009,  1011,     0,   762,   291,   131,     0,     0,   450,   453,
       0,    91,   142,   281,     0,   141,   143,   145,   146,   147,
     144,   148,   399,     0,   411,   410,   412,     0,   407,     0,
     120,   362,     0,   283,   347,     0,   384,     0,     0,     0,
       0,   703,     0,     0,     0,   875,     0,   962,   848,   953,
     964,   955,   957,   991,  1299,     0,   846,     0,   645,     0,
     786,     0,   643,   136,  1302,     0,     0,     0,     0,   481,
     128,     0,   242,   402,     0,   242,   130,     0,   394,   242,
     494,   834,     0,     0,   563,   562,   573,     0,   564,   565,
     561,   560,   566,     0,     0,   582,   841,     0,   842,  1281,
       0,   838,     0,   859,     0,   857,     0,  1298,   861,   850,
     824,     0,   823,   829,   831,   830,   828,     0,     0,     0,
     550,     0,     0,   242,   739,     0,     0,     0,  1235,     0,
       0,  1270,  1266,     0,     0,  1229,     0,     0,     0,     0,
    1242,  1243,  1244,  1241,  1245,  1240,  1239,  1246,     0,     0,
       0,     0,     0,     0,     0,  1053,  1052,     0,     0,     0,
       0,     0,     0,     0,     0,  1137,  1167,     0,     0,  1203,
       0,  1229,  1256,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1229,  1262,     0,  1282,  1281,     0,     0,
       0,     0,  1317,  1098,  1292,     0,  1283,     0,     0,  1105,
       0,  1263,  1132,     0,  1120,     0,  1113,     0,  1118,  1122,
    1101,  1284,  1228,     0,  1226,     0,     0,  1099,     0,  1094,
    1092,  1093,  1086,  1087,  1088,  1089,  1090,  1091,  1082,  1095,
    1207,  1205,  1206,     0,     0,     0,  1117,  1410,  1440,     0,
     908,   908,   897,   906,  1291,     0,   993,     0,     0,     0,
    1168,     0,     0,   382,     0,  1080,     0,   987,   871,     0,
       0,   993,     0,   870,   801,   800,  1288,     0,     0,   922,
     923,     0,   940,     0,   862,   862,     0,     0,     0,   461,
     460,     0,     0,     0,     0,   694,   671,   498,   695,   672,
       0,   782,     0,     0,     0,     0,     0,   242,   789,   696,
     238,   790,   688,     0,   627,   628,     0,   613,  1017,   601,
       0,     0,   608,     0,   607,  1011,     0,     0,     0,   674,
     132,   234,   679,   235,   233,   675,     0,  1305,     0,     0,
       0,   682,     0,     0,   104,   106,   108,     0,     0,   102,
     110,   105,   107,   109,   103,   111,   101,     0,     0,   100,
       0,     0,     0,     0,    94,   700,   677,   690,   366,   377,
       0,   370,   371,   368,   372,   373,     0,     0,     0,   210,
       0,     0,   221,   227,   228,   226,   242,   242,   224,   225,
     223,   230,   678,     0,   691,   222,   220,     0,   209,   702,
     684,     0,   701,   692,   683,   171,   170,   172,     0,     0,
       0,     0,     0,     0,     0,     0,   525,   506,   524,     0,
       0,     0,   500,   321,     0,   267,   248,   249,     0,   247,
       0,   464,     0,     0,     0,   998,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   778,   778,   778,   778,
     778,   763,   787,     0,   449,     0,     0,   322,   137,     0,
       0,   398,     0,     0,     0,   994,     0,     0,     0,     0,
     282,   284,   286,   287,   288,     0,   359,   361,     0,     0,
     351,     0,     0,     0,     0,   588,     0,     0,     0,   637,
     633,   619,     0,   880,   881,     0,   891,     0,   964,     0,
     963,   975,     0,     0,   981,   979,     0,   981,     0,   981,
       0,   956,     0,   958,   975,  1300,   992,   847,   242,     0,
     242,     0,   242,     0,   242,     0,   724,     0,   439,   242,
     483,  1230,     0,     0,   575,     0,   572,   567,   569,     0,
     576,     0,     0,   844,   845,   860,   853,   855,   854,     0,
       0,   851,   827,   482,     0,     0,   242,     0,   577,   913,
    1237,  1238,     0,     0,     0,     0,  1267,     0,     0,  1199,
       0,  1197,  1175,  1177,  1035,     0,  1187,     0,  1029,  1200,
    1201,  1179,  1181,     0,  1032,     0,  1220,     0,     0,  1188,
    1139,  1140,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1152,  1151,  1189,  1202,     0,
       0,  1254,  1255,  1190,  1064,  1065,  1066,  1066,     0,     0,
    1261,     0,     0,     0,  1195,  1160,  1230,  1057,  1058,     0,
       0,     0,     0,     0,     0,     0,     0,  1121,  1115,     0,
    1119,  1123,     0,     0,     0,     0,  1107,  1133,  1103,     0,
       0,  1109,     0,  1134,   908,   908,   908,   908,   905,     0,
       0,   951,   936,     0,     0,  1172,  1169,   156,     0,   180,
     166,     0,     0,   865,   846,   868,   812,   920,     0,  1221,
     921,   947,   946,   945,   925,   929,   926,   463,   693,   670,
     687,   778,     0,   315,     0,     0,     0,   792,   621,     0,
    1011,   604,   605,   606,     0,   697,   673,   689,     0,     0,
     651,     0,   652,   650,   116,     0,     0,     0,     0,    97,
      96,   117,   115,     0,   114,     0,   369,   374,   376,   375,
     291,     0,     0,     0,   211,   219,   216,     0,     0,  1278,
     501,     0,     0,   502,   509,     0,     0,     0,     0,   511,
     324,   270,   255,   259,   794,   794,     0,   260,   794,   256,
     794,   253,  1466,  1211,   458,   467,   454,   457,   459,   455,
     456,     0,   466,   434,     0,     0,     0,  1001,     0,  1074,
    1075,  1076,  1077,  1078,  1079,  1073,  1080,     0,   778,   777,
       0,     0,     0,     0,     0,     0,     0,     0,   302,     0,
       0,   296,     0,     0,   637,   290,   293,   294,     0,   451,
     452,     0,   281,     0,   414,   408,   448,     0,   996,   283,
     308,   343,     0,   357,     0,   345,   344,   346,     0,   353,
     760,   391,   388,     0,   588,     0,     0,   631,   634,   632,
       0,   615,     0,   620,   598,     0,   873,   966,   973,     0,
     954,     0,   980,   976,     0,   977,     0,     0,   978,     0,
       0,   973,     0,   646,     0,   644,     0,   479,     0,   647,
     242,   242,   395,   358,   574,   570,     0,     0,   547,   579,
     840,   843,   858,   856,   582,     0,   548,   581,  1236,  1041,
       0,  1269,  1265,     0,     0,     0,  1231,     0,     0,  1249,
    1248,  1250,     0,     0,     0,  1149,  1147,  1148,  1141,  1142,
    1143,  1144,  1145,  1146,  1138,  1150,  1259,  1258,  1252,  1253,
    1061,  1059,     0,  1192,  1193,  1194,  1260,  1204,  1047,  1080,
    1083,     0,     0,  1106,  1264,  1124,     0,     0,  1234,     0,
    1102,     0,     0,     0,     0,  1111,  1220,     0,     0,     0,
       0,     0,     0,   900,   899,     0,   938,  1170,  1171,     0,
       0,   872,   863,     0,     0,   317,     0,     0,   637,   622,
       0,   617,     0,     0,     0,   112,    98,   119,   118,    99,
     113,   289,     0,     0,     0,     0,   244,   680,   681,     0,
     504,     0,     0,   505,   507,   271,    93,     0,     0,     0,
       0,     0,     0,     0,   436,     0,     0,   441,   430,   432,
       0,     0,     0,   999,  1002,  1010,   429,     0,   773,   772,
     771,   768,   767,   776,   775,   766,   765,   770,   769,     0,
       0,   300,   304,   305,   303,   295,   637,   322,   355,     0,
       0,     0,   416,     0,     0,   995,     0,   306,     0,   347,
     285,   360,   361,     0,     0,     0,     0,     0,     0,   755,
       0,   393,   389,     0,     0,   587,     0,     0,   637,   636,
     719,   720,   717,   718,     0,   965,     0,     0,   967,     0,
       0,   969,   971,     0,     0,     0,     0,     0,  1303,   242,
     242,   242,   725,   440,     0,   347,     0,   568,   242,     0,
    1268,  1186,  1196,  1034,  1198,  1031,  1247,     0,     0,     0,
       0,  1191,  1318,  1130,  1128,  1125,     0,  1126,     0,     0,
       0,  1108,  1104,     0,  1110,  1135,   904,   903,   902,   901,
       0,     0,   892,  1080,   869,     0,   784,     0,   637,   355,
     618,   699,   676,   698,   212,   213,   214,   215,     0,   217,
       0,   508,   503,   254,     0,   257,   262,     0,   263,   258,
     261,   438,   437,   435,   431,   433,  1000,     0,   659,     0,
     434,   774,     0,     0,   292,   355,   329,     0,   297,     0,
     760,   283,   415,     0,     0,   409,   347,     0,     0,   307,
       0,   351,     0,   348,     0,   352,     0,     0,     0,   757,
     390,     0,   385,     0,     0,     0,     0,   589,   596,   596,
     635,   597,     0,     0,   974,   983,     0,   970,   968,   959,
       0,   961,   660,   480,   648,   351,   571,   578,   242,  1153,
       0,     0,     0,  1127,  1233,  1131,  1129,  1112,   935,   937,
     181,  1222,     0,   355,   318,   243,   510,   246,   269,   264,
     659,     0,   656,   428,     0,   299,   298,     0,   334,     0,
       0,   756,   417,   418,   413,     0,   351,   312,   310,   314,
     311,   309,   313,     0,   353,   349,   350,     0,   356,   758,
     759,   392,   795,     0,     0,   637,     0,     0,   594,   592,
     591,   993,   972,     0,   960,   353,   549,  1154,     0,  1155,
     322,   319,   655,   658,   657,     0,   326,   327,   328,     0,
     301,   330,   331,     0,     0,     0,   353,   342,   273,   835,
     637,   596,   353,   590,   595,     0,   982,     0,  1156,   329,
       0,     0,     0,     0,   332,     0,   333,   354,     0,     0,
       0,   468,   469,   421,   274,   833,   353,   593,   993,   723,
       0,   334,     0,   339,     0,   338,     0,   336,   335,     0,
       0,   474,     0,   423,   425,   426,   422,     0,   419,   424,
     427,   993,   583,   722,   721,     0,   434,     0,   337,   341,
     340,     0,   478,   470,   403,     0,   584,   705,   716,   704,
     706,   714,   711,   713,   712,   710,   320,     0,   473,   477,
       0,   471,   420,     0,   715,   709,   891,   882,     0,     0,
     707,   716,   421,   478,   708,     0,   472,   404
};

/* YYDEFGOTO[NTERM-NUM]. */
static const short yydefgoto[] =
{
      -1,    46,    47,    48,    49,   935,  1491,  1924,    50,    51,
      52,    53,    54,    55,    56,    57,    58,   957,    59,    60,
     693,  1155,  1585,    61,   550,   551,  1376,  1377,  1378,  1532,
    1379,  1364,   877,  1380,    62,    63,    64,   872,  1354,    65,
      66,   986,   987,   962,   988,   941,  1185,  2709,    67,    68,
    1988,  1103,  1989,  2321,   423,  1552,  2556,  2557,    69,  1152,
    2029,  2030,  2031,  2032,  2012,  2365,  2366,  2367,  2033,  2607,
    2749,  2034,  1441,  1100,  1548,  1549,  2818,  2870,  2871,  2872,
    2917,  2609,  2040,  2389,  2615,  2738,    70,  1604,  2035,  2036,
      71,    72,   975,  1504,  1930,  1381,  1366,  1367,    73,   448,
    2391,  2621,  2762,    74,   478,    75,  1157,    76,    77,  1160,
    1597,  1598,  2603,  2743,  2824,  2927,  2928,  2730,  2567,  2568,
    2569,    78,    79,    80,    81,  1481,  1577,  1578,  2325,   926,
    1422,  1107,  1555,  1556,    82,  2901,  2902,   449,  2961,    83,
      84,    85,    86,   479,   738,  2848,   930,    87,    88,   674,
    1977,    89,   495,   752,    90,    91,   502,  1690,   504,  1228,
    2096,  2097,  2438,  1655,   613,    92,    93,  1665,  1693,    94,
     450,  2396,  2766,  2767,  2849,    95,   451,   953,  1463,  1464,
    1465,  1466,  2400,  1467,  2049,  2050,  2051,  2397,  2404,    96,
     951,  1456,    97,    98,    99,  1486,   630,   100,  2812,   101,
     714,   102,   524,  1245,   103,  1507,   104,   105,   106,  2052,
    2949,  2963,  2964,  2965,  2634,  2935,   107,  2951,   109,   110,
     111,   142,   645,   646,   647,   112,  2619,   113,   114,  1573,
    2011,  2350,   115,   116,  1434,  1861,   117,   118,   119,  1147,
     120,   121,   122,   123,   124,   574,   566,   901,  1398,   125,
    1213,   483,   126,   763,  1240,  1682,   127,   741,   128,  2952,
    1234,  1667,  1668,  1671,  2953,  1180,   131,  1238,  1676,  1679,
    2954,  1388,  1389,  1390,  1391,  1392,  1829,   133,   708,  1614,
    2955,   842,   136,   137,   138,  1349,  1812,   513,   912,   542,
     579,   580,  1403,  1404,   919,  1418,  1411,  1413,  2516,  2692,
     920,  1416,   921,   922,  1844,   139,  1816,  1618,  1619,  1620,
    2060,  2070,  2413,  2641,  1621,   563,  1622,  1626,  2024,  2025,
    1468,  1562,  1131,   843,   844,   845,  1278,  1289,  1272,  1134,
     846,   847,   848,  1137,   849,   850,   851,   852,  1261,  1314,
     853,   854,  1298,  1570,  1210,  1734,   856,   857,   858,  1803,
    1342,   632,   859,  2327,  1344,  1754,  1718,  2499,  1697,  1259,
    1719,  1731,  2148,  1738,  1743,  2171,  2172,  1755,  1772,   860,
    1701,  1702,  2127,  1263,   861,   650,   651,  1304,  1768,   904,
     905,   568,   862,   863,   864,  1229,   564,  2637,   721,   610,
    1896,  1080,   416,   510,   865,   866,   867,   868,  2098,  1370,
     508,   869,   605,  1081,   410,   411,   607,  1085,   418
};

/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   STATE-NUM.  */
#define YYPACT_NINF -2558
static const int yypact[] =
{
    5977,   371,  2377, -2558, -2558,   371, -2558, 32407, 27591,    61,
     409,    93, 21029, 32751, 32407,   205,  3647,   371, 32407,   249,
   20682, 25183,   221, 27591,    42,   288, 20682, 27591, 33095,   402,
     498, 33439, 28967, 24495,   560, 32407,   600, 33783, 29311,   415,
     288, 18936, 25871,   667,   448,   -44,   861,   511, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558,   562, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558,  1188, -2558,   509,  1315,   583,
   -2558, -2558, -2558, 23119, 32407, 32407, 32407, 23119, 32407, 25871,
   32407, 16787, 32407, 32407, 25871, 25871, 32407, 32407, 32407, 32407,
     516, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558,   507, -2558,   818,   832, -2558,  3747,
      42, -2558, -2558, 27591,   761, 23119, 32407,   728,   805, 32407,
   -2558, 32407,   698, 32407,   959, 17148,   870, 32407, 32407, 32407,
   -2558, -2558, 32407, -2558, 32407, -2558, 32407,   372,   896,  1101,
    1049,    92, 32407, -2558, -2558, 25871, 23463, 32407,  1035, -2558,
   34127, -2558, 23807, 34471, -2558, 17509,  1173, -2558, 34815, 35159,
   -2558, -2558, -2558, 35503, 35847, -2558, 36191, -2558,  1046, 36535,
   -2558,   855, -2558,   562,   751, -2558,    95,   117,   173,   118,
     126,   131,   751, -2558,   889,   826, -2558, -2558,  1056, -2558,
   -2558, -2558,  1033,   -73, -2558, -2558, 27591, -2558, -2558, -2558,
   -2558, -2558, -2558, 27591,   826, -2558, -2558,    42,   900,  1266,
   32407, -2558, 32407, -2558, 27591, 32407, -2558, -2558,  1289,   982,
    1157,   961, -2558,  1116,  1127,  1136,    32,    42,  1055, -2558,
   -2558,  1146, 10347, 26215, 36879,   132, 22083, 29655,  1025,   516,
   -2558,   439, -2558,  1364,  1082,  1235,   961,   516, 27591, -2558,
   -2558, 15029, 37223,  1144,  1071, -2558,  1328, 10712, -2558,  1088,
    1109, -2558,  5977, -2558, 27591,   692,   692,  1453,   692,   595,
     664,   448, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558,  1124,   507,  1135, -2558,  1152, -2558,   636,  1129,
     512, -2558,   156,   102,  1160,   175, -2558,   758,  1256, 32407,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
    1168, -2558, -2558,  1175,   649,   823,  1239,   -54,  2516,   840,
    1336,   682,   677,  1390,   343, -2558,   -20, -2558, 12537, 18592,
   -2558,   507, 27591, 23119,  1201, -2558, 32407, -2558, -2558, -2558,
   23119, -2558,  1363, 17870, -2558, 32407, -2558, -2558, -2558, -2558,
   32407, -2558, -2558,  1415, 32407, -2558,  1250,   550,  1276,  1551,
   39975, 32407,  1269,  1600, -2558, -2558,  1269, -2558, -2558, 32407,
    1287,   492,  1269,  1606,  1633,  1435,   257,    74,  1269, 27591,
   27591, 27591,  1500, 32407, 37567, 23119, 32407, -2558,   547,  1342,
    1559,  1135,   136,  1563,  1310,  1578, -2558,  1580,  1160,  1582,
    1324, -2558, 37911,  1588,  1331, 32407,  1591,  1324,  1592,  1484,
    1594, -2558,  1597,  1490,  1601,  1324, 22429,  1603,    81, -2558,
   12537, -2558,   897, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, 32407, -2558, 26559, 32407, 26903,    39,    29, -2558,
   32407, -2558, 39975,  1694, 32407,  1596,  1596,  1596, -2558, -2558,
   -2558,  1545, 32407,  1607,  1609, 26559, 32407, -2558, 38255,  1356,
     915,  1379,   690,  1380, 12537,  1362,   245,   245,  1365,  1366,
   -2558, -2558,  1369,  1370, -2558,   358,   358,  1496,  1371,  1374,
   -2558,   597,  1377,  1398,  1399,   694,  1381,  1382,  1384,  1337,
     245, 12537, -2558,  1386,   735,  1387,  1388,  1389,  1410,  1392,
   -2558,  1412,  1395,   601,   890,  1401,  1402, -2558,  1371, -2558,
      67,   756, -2558, -2558, -2558, -2558, -2558, -2558, 12537, 12537,
   -2558, 11077, -2558,    42, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558,   104, -2558,   820,  2780, -2558, -2558,  1539, 12537,
   -2558, -2558,    17, -2558,   507,  1404, -2558, -2558, -2558, -2558,
     828, -2558,   571,  1400,   226, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, 21737,  1754, -2558,    72,   -20, 19968, 19968, -2558,
   -2558,  1602, -2558,    98, 27591, -2558, 32407, -2558, 15717, -2558,
   -2558,   562, -2558, 21020, -2558,   652, -2558, -2558, -2558,  1411,
   -2558, -2558,   -44,   -44, 12537,   -44,   393, 11442, 12537,  1662,
     518,  1663, -2558, -2558,   507, 19280,   654,  1476,  1479, 22775,
    1418,  1486,  1487, 36879, -2558, -2558, -2558,   211,   144,  1488,
     108, -2558,  1572,  1524, -2558,  1587,   150, -2558, -2558, -2558,
   -2558,   712,  9637,   829, -2558, -2558,  1491,  1474,  1494,  1495,
    1287,   340,  1430, -2558,  1498,  1480, 38943, 18231,  1502, 36879,
   -2558, -2558,  1504,  1505,  1538,  1264,   111,  1759,  1611,  1517,
     917,  1520, 27591,  1669,   106,   467,  1459, -2558, -2558,  1527,
    1529, 25871,  1531,  1570,  1533, 36879, -2558, -2558,   577, -2558,
   -2558,   516, -2558,   671, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,  1135, 39975,
    1622,  1160,   871, 32407,  1477,   537,  1623, 32407,  1683, 32407,
    1508, -2558, -2558,  1269, -2558, 19624,  1287, -2558,  1482, -2558,
    1515, -2558,  1515,  1515,  1485,  1485,  1489, -2558, -2558, -2558,
    1337,  1515,  1492, -2558, 40663, -2558,   536,   742, -2558, -2558,
    1828,  1833, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558,    56,  1129, -2558,  1846, -2558, -2558, 39975, -2558,  1774,
   22775, -2558,  1528, -2558, 32407,   162, 32407,  1680, -2558, -2558,
     181,  1497, -2558, -2558, -2558,   -24,  1250, 22083,  1746, 32407,
    1649, -2558,  1160,  1851, -2558,  1130, -2558,  1604, -2558, 14341,
    1535, 23119,   136, -2558, -2558, -2558, -2558, 39975, 32407, 23119,
     136, 32407, 32407,  1763,  1552, 18231, 38943,   112, 32407, 32407,
   27591, 32407, 32407, 27591, 32407,  1771,   136, 32407, 32407, -2558,
   21020,   768,   605, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558, 32407, 23119, 32407, 32407, 27591, 27591, 32407,  1573,  1400,
     -76, -2558,  1554, 15373,  1626, -2558,   138, 27591,  1673, -2558,
     886, -2558,   292,   -68, -2558, -2558, -2558, -2558, -2558, -2558,
   26903, 25183,  1765,    31, 32407, -2558, 12537, 11807, -2558, -2558,
   -2558,  1521, 21020,  1555, 12537, -2558, -2558, 12537, 12537,  1537,
    1537,  1537, -2558, -2558, -2558, -2558,  1309,  1537, -2558, 12537,
   12537,  1537,  1537,  1515,  1515, -2558,  6039, 12537,  1537, -2558,
   18231, 12537, 12902,  8926, 12537,  1590,  1593,  1537, -2558,  1537,
   -2558, 12537,  9982, -2558,   507,  1523,  1523,   448,   885,  4437,
    1526, -2558,  1618,  1537, -2558,  1537,   250, 12537, 22775,  1599,
     105, 12537,  1540,   869, -2558, 12537,   252, -2558,  1546, 12537,
    1598,   127, 12537, 12537, 12537, 12537, 12537, 12537, 12537, 12537,
   12537, 39975, -2558, 13267,   130,   -69,   238, 27247, 10347,  1793,
     927,  8560, -2558, -2558, -2558,  1754, -2558, -2558,  1608, -2558,
   -2558, -2558, -2558,   844, -2558, -2558, -2558, -2558,   865, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558,  1547, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558,  1549, -2558, 32407,    49, -2558,
   -2558, -2558,  1567, -2558, 25527, -2558, 10712, 32407, -2558, -2558,
    1766, -2558, -2558,  1553, -2558,  2910,  1766,  1705,  1713,  1713,
   -2558,   -18, 21020,  1753, 21020, -2558, -2558, -2558, -2558,   -40,
   -2558,  1561,   894, -2558,  1625,  1631,  1670, 32407, 32407, -2558,
   22775, 32407, 32407, -2558,  1881,  1574, 32407,  1778,  1779,  1581,
   -2558, -2558, 32407, -2558,  1735, 32407, 12537,  1736, 32407,  1738,
     688,  1733, -2558, -2558, -2558, -2558, -2558,  1728, -2558, -2558,
   40663,    97, -2558,   902, -2558, 27935, 38599, -2558, -2558,  1129,
   -2558,   142,  1648,  1650,  1687, 32407, 32407, 32407, 32407, -2558,
   32407, -2558,   822, 32407, 32407,  1585,  1595,  1586, -2558, 32407,
   -2558,  3229, 32407, 32407, 32407,   871, -2558,  1925,   871,   871,
     489,  1926,  1269,  1269, -2558, -2558, -2558, 32407, 32407, 32407,
   28279, 32407, 32407, 28623, -2558, 27591, 32407, 32407, 32407,   333,
    1218, 32407, 32407,  1712, 32407, 32407, 32407, -2558,  3229,   116,
    1721, -2558, -2558, -2558, -2558, 12537,  1807,  1953, 32407,  1809,
    1813,  1651, 38943,    12, 32407, 32407,  1814,    12,   905, -2558,
   -2558,  1761,    58, -2558,  1621,   945, -2558, -2558, 12537,  1964,
   39975,  1620,  1624,  1677,  1681,  1682, -2558, -2558,  1685,  1537,
   -2558,  1418,   181,   570, -2558,  3229,  1869,   948, -2558,  1638,
   27591,  3229, -2558,   543, 25183, -2558, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558,    42, -2558, -2558, -2558,  1777,  1775, 32407,
    3229,  1264, 27591, 24151,  1209,  1979,  1871,    42,  1781, 27591,
    1433, -2558,  1874,  1875,  1885, -2558, 13997, 29999,  1632,   802,
   -2558, 29999, 30343, -2558,   507, 12537,  1626,  1135, -2558,  1991,
   -2558,  1160, -2558,  1324, -2558, 32407, 32407,  1644,  1645, -2558,
    1324,  1794,   136, -2558,  1797,   136,  1324, 22083, -2558,    81,
   -2558, -2558, 12537,  1719,  1324,  1657, -2558,  1160,  1324,  1324,
    1400,  1400,  1324, 30687,  2022,  1904, -2558,   957, -2558, -2558,
   10347, -2558,    71, -2558,    78,   519,  1850, -2558, -2558, -2558,
   -2558, 39975, -2558, -2558, -2558, -2558, -2558, 32407,   146,  1820,
    1668, 30687,  2009,   136, -2558,   975,   759,   794, -2558,  1537,
   12537,   204, -2558,  5051,   977,  5577,   978,  1678,  1679,  1011,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,  1684,  1929,
    1688,  1014,  1027,  1689,  1693, -2558, -2558,  2601,  1028,  1695,
    5615,  1696, 12902, 12902,  2511, -2558, -2558, 12902,  1697, -2558,
    1045,  3335,  1698,  1699,  1711,  1726,  1701,  1703,  6319, 12172,
   12537, 12172, 12172,  6599,  1698,  1708, -2558, -2558, 12537, 32407,
    1709,  1710, -2558,  6039, -2558,  1740, -2558, 12902, 12902,  4307,
   11077, -2558, -2558,  1961, -2558,   992, -2558,  1717, -2558, -2558,
    5451,   133, 12537,  1540, 12537,  1780, 18231,  3931, 12537,  7313,
    2852,  2852,   271,   271,   109,   109,   109,    99, -2558,   238,
   -2558, -2558, -2558,  1718,  1392, 12537, -2558,  1030,  1139, 27591,
    1635,  2168, -2558, -2558, -2558, 14341,  1535, 12537, 12537,  1720,
   -2558,  1047,   516, -2558,  1537,   250, 20325, -2558, -2558,  1054,
   15717,  1535, 10712,   507, -2558, -2558, -2558,  1062, 12537, -2558,
   -2558,  1859, -2558, 32407,  1673,  1673, 12537, 12537, 11442, -2558,
   -2558, 39975, 32407, 32407, 32407, -2558, -2558, -2558, -2558, -2558,
    1906, -2558, 12537,   103,  1724,  1725, 32407,   136, -2558, -2558,
   21020, -2558, -2558,  1937, -2558, -2558,  1884, -2558,  1129, -2558,
   24839, 40319, -2558, 40319, -2558,   683, 32407, 32407, 32407, -2558,
    1324, -2558, -2558, -2558, -2558, -2558,   859, -2558, 39975,  1865,
   39287, -2558, 32407,  1924, -2558, -2558, -2558,  1868,   412, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558,    22, 32407, -2558,
    1537,  1886, 32407,  1800, -2558, -2558, -2558, -2558, -2558, -2558,
     871, -2558, -2558, -2558, -2558, -2558, 32407,   871,   871, -2558,
   39975,   457, -2558, -2558, -2558, -2558,   136,   136, -2558, -2558,
   -2558, -2558, -2558,  1796, -2558, -2558, -2558,   681, -2558, -2558,
   -2558,  1817, -2558, -2558, -2558, -2558, -2558, -2558,  6693,    12,
   39975,  1940,    12,    12, 32407,  1768, -2558, -2558, -2558,  1967,
    1974,    12, -2558, -2558, 32407, -2558, -2558, -2558,   550,  2072,
   16426, -2558,  1791,  6853,  1773,  1624,  1772,  1537,   515,   470,
      50,  1872,  1956,  1783,  1927,  1972,  1795,  1795,  1795,  1795,
    1795, -2558,  1950,  1832, -2558, 22775, 16426,  1250,   162,  1894,
     411, -2558, 27591,   181,  1065, -2558, 39975,  1788, 27591,  1792,
    1784, -2558, -2558, -2558, -2558,  1070, -2558, 39975,   -14,  1947,
    1946,   -44, 32407,  1860, 27591,  1842,    42, 22083, 39631,   873,
   -2558, -2558,  1951, -2558, -2558,   -44,  9292,   802,  1802, 32407,
   -2558,  1804, 14341,  2011,  1952, -2558, 14341,  1952,   576,  1952,
    2012, -2558, 16061, -2558,  1805,   927, 21020, -2558,   136, 39975,
     136,  1858,   136, 38943,   136, 27591, -2558, 27591, -2558,   136,
   -2558, 21020, 27591, 23119, -2558, 32407,   -59, -2558, -2558,  1963,
   -2558,   -44, 32407,   507,  1815, -2558, -2558, -2558, -2558,  2079,
    2082, -2558, -2558, -2558, 32407, 26559,   124, 32407, -2558, -2558,
   -2558, -2558,  1826,  1831,  7129, 12537, -2558,  2097, 39975, -2558,
   32407, -2558, -2558, -2558, -2558,  1537, -2558, 12537, -2558, -2558,
   -2558, -2558, -2558, 12537, -2558,  1537, -2558, 12537,  2080, -2558,
    1836,  1836, 12902,   121,  1387, 12902, 12902, 12902, 12902, 12902,
   12902, 12902, 12902, 12902, 39975, 13632,  1015, -2558, -2558, 12537,
   12537,  2084,  2080, -2558, -2558, -2558,  1251,  1251, 39975,  1838,
    1698,  1839,  1840, 12537, -2558,   507,  7155, -2558,  2165,    42,
   12537,  1103,  1249, 12537,  1072, 12537,  2094, -2558, -2558,  1856,
   -2558, -2558, 39975, 12537, 12902, 12902,  5524, -2558,  6275, 12537,
    1857,  6756, 11077, -2558,   288,   288,   288,   288, -2558, 27591,
   27591,  1632,  2095,  1083,  1110, -2558, -2558,   -20,  1861, -2558,
   -2558,  1876, 32407, -2558,  1626, -2558, -2558, -2558,  1864, -2558,
   -2558,  1324, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558,  1795,  7414, -2558, 32407, 32407,  1115, -2558, -2558,  2076,
     731, -2558, -2558, -2558,  1913, -2558, -2558, -2558,  1928,  1930,
   -2558,  1931, -2558, -2558,  1324,   751,    42, 32407, 32407, -2558,
   -2558,  1324, -2558,    42,  1324,    42, -2558, -2558, -2558, -2558,
   -2558,   167,   486, 39975, -2558, -2558, -2558, 32407, 32407, -2558,
   -2558,  1867,    12, -2558, -2558,  2073,  2078,    12,    12, -2558,
   -2558,    91, -2558, -2558,  1600,  1600,   753, -2558,  1600, -2558,
    1600, -2558,  1864,   844, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558,  1621, -2558,   497,  1537,  1284,  1878, -2558,  1879, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558,   250, 27591,  1795, -2558,
     190,    62, 31031, 31375, 31719,  1873, 32407, 12902, -2558,   650,
     157, -2558,  2077, 27591,  1905, -2558, -2558, -2558, 39975, -2558,
   -2558,  2227,   605, 27591,  2130,  2026, -2558, 32407, -2558, 24151,
   -2558,  2105, 24151, -2558, 32407, -2558, -2558, -2558,  2197,  1954,
     963,  1935,  1129,    42,  1842, 32407,  1887, -2558,  1883, -2558,
    1577, -2558,  1287, -2558, -2558,   491, -2558, 29999,  1897, 32407,
     802, 14341, -2558, -2558,  1571, -2558, 14341,  2102, -2558, 14341,
   32407,  1903, 32407, -2558,  1898, -2558, 32407, -2558,  1907, -2558,
     136,   136, -2558,  1909, -2558, -2558,  2145, 30687, -2558, -2558,
   -2558, -2558, -2558, -2558,    31,  2150, -2558, -2558, -2558, -2558,
   12537, 21020, -2558,  1910,  1911,  1915, 21020,  7440,  1916, 21020,
    2084,  2475,  2152,   468,  1919,  2475,  2817,  2817,   973,   973,
     821,   821,   821,  1836, -2558,  1015, 21020, 21020, -2558, -2558,
   -2558, -2558,  1921, -2558, -2558, -2558,  1698, -2558, -2558,   250,
    1523, 12902, 12902,  1899, -2558,   291, 12537, 39975, -2558,  1132,
    1899,  1665,  1770, 12537, 12537, 20956,   166, 12537,  7606, 27591,
   27591, 27591, 27591, -2558, -2558,  2252,  2160, -2558, -2558,    42,
     448, -2558, -2558, 18231,   751, -2558,  1141,  1142,  1905, -2558,
    1977, -2558, 32407, 32407, 32407, -2558, -2558,  1324,  1324, -2558,
   -2558,  1950,  2086,  2087,   751, 32407,  1968, -2558, -2558,  2138,
   -2558,    12,    12, -2558, -2558, -2558,  1269,  2210,    42,    42,
    2092, 32407,    42,    42, -2558,   727,  2219, -2558,  2158,   170,
    1941,  2182,  2185, -2558, -2558, -2558,  2191,   751, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, 12537,
    1117,  2475, -2558, -2558, -2558, -2558,  1905,  1250,  1989,  1992,
     -44,    -2,  2218,  2211,   181, -2558,  1955,   647,  1965,  1209,
   -2558, -2558, -2558,   137, 32407,  2302,  2276,  2284,  2112, -2558,
   32407,  2170,  1418,  2214,  1970, -2558, 14685,    42,   873, -2558,
   -2558, -2558, -2558, -2558,  2032, -2558, 32407,  1143, -2558, 12537,
    1976, -2558, -2558, 14341,  1571,  1149, 32407,  1150, 39975,   136,
     136,   136, -2558, -2558, 32407,  1209,  2118, -2558,   136, 30687,
   21020, -2558, -2558, -2558, -2558, -2558, -2558, 12902,  2225,  1981,
   39975, -2558, -2558,  1834,  1834,   291,  1180, -2558, 39975, 12902,
   12902,  1899,  1899, 12537,  1899, -2558, -2558, -2558, -2558, -2558,
   12537, 12537, -2558,   250, -2558,  1982, -2558,  2103,  1905,  1989,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, 12537, -2558,
      12, -2558, -2558, -2558,    42, -2558, -2558, 32407,  1980, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, 23119,  2334, 27591,
     497, -2558,  7682,  2147, -2558,  1989,  2171,  2215, -2558, 32407,
     963, 24151, -2558,   827,  2115, -2558,  1209,   558,   776, -2558,
   27591,  1946,  2098, -2558,  2099, -2558,    79,  2139,  2141, -2558,
   -2558,    42, -2558, 32407, 14685, 12537,  1208, -2558, 32063,  8210,
   -2558, -2558, 27591,  1210, -2558, 21020, 32407, -2558, -2558, -2558,
    1215, -2558, -2558, -2558, -2558,  1946, -2558, -2558,   124,  1267,
   12902, 39975,  1222, -2558, -2558,  1834,  1834,  1899,  1698, 21020,
   -2558, -2558, 27591,  1989, -2558, 21020, -2558,  2072, -2558,  1980,
    2334,   197, -2558, -2558,  2242, -2558, -2558,    63,  2149,  2069,
    2350, -2558, -2558, -2558, -2558, 23119,  1946, -2558, -2558, -2558,
   -2558, -2558, -2558,  1223,  1954, -2558, -2558, 32407, -2558, -2558,
   -2558, -2558, -2558,  1230, 21001,  1905, 14685, 32407, -2558, -2558,
   -2558,  1535, -2558,  1252, -2558,  1954, -2558,  1267,  1272, -2558,
    1250, -2558, -2558, -2558, -2558,  2272, -2558, -2558, -2558,   120,
   -2558,  2153,  2154, 32407,    55,  2006,  1954, -2558, -2558,   855,
    1905, 32063,  1954, -2558, -2558,  2280, -2558,  2357, -2558,  2171,
    2113,   481,   481,  2290, -2558,  2056, -2558, -2558,  1537,  1537,
   39975,  2008, -2558, 21387, -2558, -2558,  1954, -2558,  1535,   176,
    2273,  2149,  2274, -2558,  2378, -2558,   135, -2558, -2558, 23119,
   18231, -2558,    55, -2558, -2558, -2558, -2558,  1273, -2558, -2558,
   -2558,  1535, -2558, -2558, -2558,   849,   497,  2144, -2558, -2558,
   -2558,  1160,   -27, -2558, -2558, 21387, -2558, -2558,   854, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, 23119, -2558, -2558,
   38943, -2558, -2558,   866, -2558, -2558,   877,  1109,  2021,  2024,
   -2558,   854, 21387,  2143, -2558,  1274, -2558, -2558
};

/* YYPGOTO[NTERM-NUM].  */
static const short yypgoto[] =
{
   -2558, -2558, -2558,  1821, -2558,  -594,  -605, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -2558,
   -2558,   807, -2558, -2558,  -435,  1197,  1506, -2558,   569, -2558,
   -2558, -2558, -2558,  -504, -2558,   456, -2558, -2558, -2558, -2558,
   -2558, -2558,   879, -2558,  -563,   462,  -577, -2558, -2558, -2558,
   -2558,   417,  -316, -2558, -2558, -2558, -2558, -2558, -1095,     2,
      27, -2558,    26,   903,   119, -2558,  -177, -2558, -2558, -2558,
   -2558,  -685,   552, -1151, -1815,   433,  -471,  -491,  -451,  -449,
    -469, -2558, -2399, -2508, -1883, -2112, -2558,    -9, -2558,    45,
   -1091, -2558,  1270, -2558, -2558,  -810, -2558,  -116, -2558, -2558,
    -189, -2558, -2558, -2558,   155, -2558, -2558, -2558, -1090, -2558,
     863, -1946, -2558, -2558, -2558,  -539,  -509, -2558, -2554,  -132,
    -129, -2558, -2558, -2558, -2558,  -680, -2558,   425,   426,  -615,
   -2558, -2558, -2558,   449, -2558, -2558,  -476,  1298,  -525, -2558,
   -2558, -2558, -2558, -2558,  1242,  -137, -1107, -2558, -2558, -2558,
   -1422, -2558,  2424,  1938, -1085, -2558,    -7,    10,  1702,  -747,
   -1650,    16, -2558, -2558, -1198, -2558, -2558, -2558, -1598, -1084,
   -2558,    65,  -304,  -385, -2557, -2558, -2558,  -714, -2558,   584,
     997,  1000, -2558, -1352,    75,  -503, -1962, -2558, -2261, -2558,
   -2558, -2558, -2558, -2558, -2558, -1183,  -427, -2558,  -343, -2558,
   -2558, -2558, -2558,   882, -2558,   187, -2558, -2558, -2558, -2558,
   -2558, -2558,  -464,  -495, -2558, -2558, -2558,    84, -2558, -2558,
   -2558,  1079,  -626,  -519,  1920, -1077,  -261, -2558, -2558, -2558,
   -2558, -1842, -2558, -2558, -2558, -2558, -2558, -2558, -2558, -1031,
   -2558, -2558, -2558,  1086,  2462,  -378, -2558, -2558, -2558, -2558,
   -2558, -2558, -2558, -2558, -2558, -2558,  1741,  -397, -2558,    36,
   -2558, -2558,   382, -1554,    37, -2558, -2558, -2558, -2558,  -192,
      44, -2558,   657, -2558, -2558, -1314, -2558,  1747, -2558, -2558,
      34,     0,   -39,   763,   767, -2558, -2558,   -35,   834, -2558,
   -2558, -2558, -2558,   653,  1568, -2558,   642,  -184, -2558, -2558,
    1575, -2558, -2558,  1576,  1089, -2558,  1104,   680, -1495,   883,
   -1520,   435,  -533,  -142,    -3,  2050, -2558, -1734, -2101,   139,
    2142,   949,  -997, -2558,  2812,  2874, -2558, -2558,  -656, -2558,
   -2558,  3418,  3679, -2558, -2558,  3972,  4023, -2558,  -657,   319,
    4338,  1958,  -805, -1270,  5251,   -47,  -339, -1059, -1006, -2558,
    -148, -2558,  5406,   668, -2558,  -632, -2558, -2362, -2558, -1200,
   -2558, -2558, -2558, -2558, -2558, -1181, -2055,  -347,   732, -2558,
   -2558,   809, -2558, -2558, -2558,  -622,  -550, -1256,   733, -1296,
   -2558,  -580,   847,  1170,   434,  -511,  3028,  -369,  1892,  -370,
   -1578,  -840,  -613, -2558,  -125, -2558, -1023,   339,  -136,     7,
      48,  4577,  -902, -1101,  2326,  -597,  -624, -1027, -2558
};

/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
   positive, shift that token.  If negative, reduce the rule which
   number is the opposite.  If zero, do what YYDEFACT says.
   If YYTABLE_NINF, syntax error.  */
#define YYTABLE_NINF -1525
static const short yytable[] =
{
     135,   923,   758,   631,  1190,   558,   570,   608,   690,   612,
    1151,   424,   615,  1638,   447,  1605,   634,  1162,   604,  1300,
    1002,   641,   614,   642,  1656,  1084,   535,   497,  1252,  1086,
     886,   503,   873,   497,   134,  1571,   129,   130,   724,   562,
     970,  2116,   880,   536,   132,   569,  1762,   893,   996,  1579,
    1470,  2256,  1083,   924,   963,   409,   417,  1698,  2082,   682,
    1586,   409,   409,  1106,  1587,  1588,   409,  2100,   409,   505,
    1589,  1590,  2077,  1828,   409,  1365,   409,  2375,  1591,   526,
     532,   505,  2222,   539,   108,   532,   532,  2403,  1145,  1429,
     716,  1170,  1148,  1161,   720, -1353,  1182,  2234,  1153,   727,
    1836,  2071,  2073,  2598,  1163,   742,   744,   735,  1211,   875,
     950, -1051,   884,  1882,  1884, -1330,  2478, -1406, -1436,  1183,
    1623,  2057,  1232,  1319,   422,  1982, -1452,  1559,  1766,  1265,
    1266, -1475,  -187,  1319,  1563,  2676,  1183,  1833, -1208,   942,
    1273,  1800,   643,  1672, -1208,  2581,   617,  1801,  1312,  1435,
    1183,   636,   638,  1285,   776,  1359,  1766,  1435,  1692,  1505,
   -1331,  1209,  1183,   937,  1505,  2351,  2352,  2353,  2354,  1236,
    1436,  1815,  1965, -1408,  1183,  1347,  2814, -1224,  2105,  2898,
    1986,  -272,   954, -1224,   746,  2107,  2866,  2837,  2933,  1602,
    1564,  1446,   609,   611,   609,  1804,   616,  1846,   409,   633,
     616,   409,  2385,  1442,   409,   409,   609,   616,  2891,  1310,
    2751,  1602,  2850,   943,  2462,   876,   705,  1764,  2939,  2863,
    2959,  1976,  1437,  -984,   644,  2752,  1583,  1443,    36,  1119,
    1437,  2279,  1206,   755,  2753,  2342,  1094,  1452,  1687,  1408,
     944,  1565,  2594,  2834,  1566,  1673,  1707,  1708,  1709,  1360,
    1443,   882,  1440,   938,  1720,  2564,  2785,  1435,  1723,  1724,
    1002,  1664,  1319,     3,     4,  1728,  1158,  2699,  2114,  1594,
    1436,  1355,   955,  2578,  1746,  2899,  1747,  2855,  2436,   419,
    1479,  1781,  1540,  1409,  1159,    44,  1736,   631,  1584, -1056,
    1760,  1506,  1761,  2867,   683,  1319,  1192,   686,  1805,   756,
     678,   692,  1086,  2125,  1192,  1084,   899,   697,  2792,  1453,
     698,    36,  1447,  2437,  1350,  1319,  1384,   631,  2876,  2645,
    2343,  2647,  1300,    45,  2907,  2463,  1567,   455,  1563,  2934,
    1437,   711,  1083,  1595,  2464,  2735,  2864,   718,  1184,  1806,
    2960,  1438,   739,  1603,  2940,  2868,  2900,  2826,  1444,  1438,
    2106,    36,  1001,  1150,  1847,  1184,  1197,  2108,   706,  1975,
     509,   945,  1885,   511,  1987,  2741,  2595,  2771,    44,  1184,
     509,  2542,  2754,   946,  2566,  1533,  1448,  1539,  1357,   506,
      15,  1184,  2956,  1955,  1564,   939,  1230,   947,  1782,  1348,
     509,  1528,  1783,  1184,   948,  1243,  2305,  1568,  1323,  1324,
    1767,  1237,  1674,  1192,   756,  2666,  1233,  1253,    44,  2524,
     509, -1208,  1516,  2103,  1802, -1051,  2555,  1675,  1361,  1362,
     509,  1830,  1439,  1569,   493,  1784,  1557,   956,  2204,  2858,
    1439,  1363,  1966,   940, -1051,  1565,   949,  2803,  1566,  2526,
    2527,  1150,   414,  2892,    22,  1327,    45,   493,  1455,  1438,
   -1224, -1525,   562,  1208,   494,  1265,  1266,   414,  1610,  1273,
      45,   414, -1330,  1559,  1285, -1330, -1353, -1330,  1341, -1330,
    1237,  1313,  1340,  1536,   409,   414,   414,   611,  1341,   609,
     509,   616,   965,   633,  1192,   616,   694,   409, -1406, -1436,
     409,   743,   609,   745,   616,   747,  2437, -1452,  1433,   748,
     409,  2185, -1475,  -187,  1596,   409,  2577, -1331,   611,  1553,
   -1331,   409, -1331,   633, -1331,   631,   409,   409,   756,  2913,
    1567,   409,   409,  1394,   409,   493,  1084,   609,  1088,  2262,
    1439,  2263,   494,  1785,  1490,  1091,  2235,  1098,   509,  1700,
    1488,  2277,   836,  1575, -1408,  2780,  2003,  2300,  1581,  1956,
    2303,  2304,  1149,  1083,  2291,  2229,  1608,  1623,  1600,  2309,
    1527,  2668,   999,  1470,    36,  1933,  1168,  2410,   409,  1446,
     409,  2414,   135,   768,   673,   520,  1260,   603,  1174,  2630,
    1172,   603,  2564,   414,  2882,  1194,   512,  2804,   414,   414,
    1857,  1568,   532, -1056,   881,   532,  1335,  1336,  1337,  1338,
    1339,  1340,   428,   702,  2339,  1628,   134,  1341,   129,   130,
     897,   540, -1056,  1632,   575,    42,   132,   432,  2827,  2906,
    1639,    44,  1175,  2816,  1695,  1696,  1725,  1726,  2005,  1648,
     519,  1337,  1338,  1339,  1340,  1704,  1706,  1407,  2326,  1480,
    1341,   521,  2828,  2631,  2565,   699,   420,  1721,  1722,  1335,
    1336,  1337,  1338,  1339,  1340,  2340,   108,  1352,  2745,    45,
    1341,  1740,  1742,  1606,  2326,   576,  2403,   609,   432,   434,
     700,  2006,  1408,  1934,  2278,  1935,  2123,  2914,   643,   140,
    2522,  2669,  1756,  1000,   699,  1928,  -586,  1317,  1931,  1932,
    2543,  2861,   917,   541,  1084,  1319,  2401,  1543,  1176,  2064,
    1320,  2566,  2829,   910,   409,   701, -1036,  1150,  1353,  2373,
     141,   633,   916,   409,  1660,  1661,  1409,   140,   409,  1821,
     434,  1083,   609,   557,  2065,  1271,  1736,  1736,  1086,   409,
     432,  1736,   577,   918,  2292,  1518,  2592,   609,  2915,  2416,
    2341,   931,   135,  1177,   701,   887,  2718,  2067,   141,   942,
    2007,   609,  1171,  2747,   409,  1544,  1623,   135,  2916,   675,
     644,  1736,  1736,  2632,   932,  2019,  1480,    32,  1637,   917,
     609,  2260,  2293,   409,  2544,  1874,  1219,  2545,  1215,  1216,
    1258,  -916,   434,  2109,   881,   911,  1217,  2593,  2748,   933,
     565,  1235,   440,   888,   441,   522,   523,   537,  1275,  2008,
     409,  2228,   570,   409,   505,  1519,  1084,  1321,   409,   772,
     918,  1322,   409,  2721,  2633,   567,  1178,  2625,  1630,   631,
    1249,  1529,  1633,   943,   409,  -281,  1255,   578,  1303,  1640,
    1530,  1323,  1324,  1083,  1150,  1646,  2830,  2069,  -916,  1101,
    1102,  1308,  2110,   440,  1325,   441,  2658,  1875,  2650,   934,
     944,  1531,  1654,   442,  1658,  1659,   761,   414,  1662,   603,
    2831,   571,   445,  1729,  2722,   927,  2371,   836,   140,  2009,
    2063,  2010,   648,  1295,  1296,  1326,   777,   649,  1327,  -916,
    2550,  2337,   572,  1424,   878,  2553,  2554,  2635,   928,   414,
     603,  1328,  2046,  1329,   573,  2434,   603,  2282,   509,   141,
    2428,   968,  2809,  1297,    32,   440,  1425,   441,  1937,  1938,
     942,   992,  1399,  1399,  1579,  1399,  2638,  2080,  2521,  1894,
    2832,  2642,  2448,  1586,  2644,  2064,   969,  1587,  1588,   994,
     881,  1426,    32,  1589,  1590,   881,   881,    15,  1295,  1296,
     414,  1591,    15,  2094,  1386, -1030,  1393,   414,   750, -1066,
    2065,  2878,  1330,  1735,   995,   581,  1541,  2560,   414,   993,
    1546,  1212,  1773,  2330,  1277,  2066,   751,  2460,  1297,  1454,
    1505,   945,  2887,  2067,  2336,  2338,  1511,   414,  1470,    14,
    1480,   532,  1774,   946,   943,    15,   934,   958,  1523,  2330,
    -891,  2479,   414,  2904,  2068,   414,  2561,   947,   684,  2908,
     685,    22,  -891,  1623,   948,    18,    22,  1623,   414,  2788,
     959,   944,  2078,   960,   934,   633,  1104,   532,  1582,  1519,
    1395,  1260,  1331,  2931,  1396,  1332,  1333,  1334,  1837,  1335,
    1336,  1337,  1338,  1339,  1340,   961,   652,  1534, -1056,  2047,
    1341,  -891, -1063,   532,  1535,  2264,   949,   631,  1150,    22,
   -1307,   958,   972,  1430,  2947,    27,  1627, -1056,  1472,  -891,
      27, -1063,  1859,  2069,  1631,  2086,   936,   677,  2088,   989,
     739,  1650,  2090,  1775,  2075,   973,  2575,   960,  1776,  1295,
    1296,  1473,  1777, -1033,   160,  2196,   414,   603,  2268,   421,
     971,  2822,   990,  2530,   603,   680,   480,  1657,   997,   961,
    -891,  1430,  1288,   493, -1330,  2197,  1474,  1890,  -891,  1299,
     494,  2269,  2455,   538,  2823,   681,  2118,  2885,  2180,  2491,
    2286,    36,  2458, -1332,   691,  2120,    36,  2288,  2289,  2711,
    2712,  1652,   945,   414,   414,   414,  1651,   467,  2194,   603,
    1652,   609,   631,  2089,   946,   609,  1736,  1550,  2777,  1736,
    1736,  1736,  1736,  1736,  1736,  1736,  1736,  1736,   947,  1736,
    2121,  2820,   703,  2355,  1508,   948,  2122,  1512,   509,    36,
     713,  1517,    42,  1310,  2932,  2153, -1331,    42,    44,  1617,
    2324,  1778,  1311,    44,  2163,  2223,  2224,  1315,   414,  1779,
    2164,  1823,   704,  1316,   570, -1333,   749,  2946,  1736,  1736,
    2357,  2198,   616,  -891,   409,  2199,  2324,   949,   725,   414,
    2402,  1756,   736,   509,  1653,   881,  2948,  1171,  1362,  2672,
      42,    45,   740,   493,  1369,   976,    44,  1295,  1296,   531,
    1363,   977,  1824,   569,  2970,   556,   611,  2971, -1066,   409,
     409,   749,   135,   633,  1689,   906,   409,   409,  -883,   409,
     409,   754,   409,   906,  1680,   609,   609,  1299,  1681,   687,
    1688,   688,  1850,  2153,    45,  2492,  1851,   762,   978,   409,
    1879,   409,   409,  1983,  1880,   409,  1686,  1984,  1683,  1684,
    1257,  1669,    45,  2558,  2559,  2622,  1685,  2562,  2806,  2563,
    2257,  1855,   648,  -891, -1310,  1858,   753,   649,   505,   505,
    1495,   764,  1694,  2227,  2200,  -891,  2616,  2617,  2618,  1869,
     979,  2570,  2201,  1991,   769,   980,  2014,  1992,   981,   771,
    2015,  2733,  1771,  2154,   770,  2101,  2361,  2579,   414,  2102,
    2214,   772,  2215,  2160,  2161,  2162,  2163,   773,   633,  1889,
    1496,  1891,  2164,  2119,  -891,  2129,  2131,  1652,   774,  1652,
    1652,  1736,  1623,  1901,   775,  2362,  1925,  1623,  2386,  2210,
    1623,   778,  -891,   982,   779,  2363,  2329,   885,  2445,  2295,
    2296,  2480,  2481,  2158,  2159,  2160,  2161,  2162,  2163,  2134,
    1283,  1284,  2139,  2135,  2164,  1959,  1652,  1710,  1962,   889,
    1964,  1084,  2329,  1735,  1735,  2140,  2144,   891,  1735,  1652,
    2145,  1971,  2179,  -891,  2181,  2182,  1497,  1979,  1980,  2153,
     913,  -891,   915,  2168,   983,  2226,   414,  1652,  1083,  1652,
    -890,   898,  2231,  2800,   890,   414,  2232, -1525,  1735,  1735,
    2236,   899,  -890,  2376,  1192,  1393,  2364,  2377,  2383,  2216,
    2494,  2217,  2384,  1711,  1652,   409,  2736,   958,  1498,   900,
    1499,  2517,  2046,  1086,   835,  1652,   906,  2155,  2156,  2157,
    1500,  2158,  2159,  2160,  2161,  2162,  2163,  1612,  1613,  2154,
     942,  -890,  2164,   960,  2241,   616,   409,   907,  2518,   616,
     611,  1756,  1652,  2528,   409,  1736,  1736,  1984,   914,  -890,
     409, -1332,  1501,   616,  1712,  1957,   409,  1713,  2081,   929,
    2677,  2423,   925,  2425,  2678,  2427,  -891,  2429,   964,  2697,
    2698,  2774,  2432,  1984,  1984,  1192,   974,  2779,  2781, -1333,
    1502,  2377,  2377,   616,   409,   616,   409,   952,   409,  2810,
    -890,   409,  1897,  2274,  2415,   966,  2418,   616,  -890,  2446,
     616,   409,   409,  2399,   943,   967,  2038,  2039,  2793,  2281,
    1503,  2486,  2678,  2284,   991,  1940,  1941,   409,   409,   409,
    1947,   409,   998,  1756,   409,   409,   409,  2768,  1089,   616,
     409,   944,   616,   409,   616,  1092,  2845,   570,  2852,  1714,
    2846,  1097,  1192,  2854,  1623,  2020,   609,  2377,  1295,  1296,
    2859,  2877,   609,   609,  2678,  1237,  2046,  1108,  2880,  2047,
     835,  1002,  2846,  2155,  2156,  2157,   934,  2158,  2159,  2160,
    2161,  2162,  2163,  1624,   942,   603,  2056,  1099,  2164,  1146,
    2886,  2571,  2572,   603,  1192,  2158,  2159,  2160,  2161,  2162,
    2163,  1154,   505,  -890,   414, -1522,  2164,   414,   631,  2063,
    2888,  2944,  2977,  1105,  2678,  2945,  2945,  2026,  1246,  1247,
    1715,  2037,  2242,  2243,  1150,  1716,   603,  1717,  -139,   414,
     414,  1736,  2244,  2245,  1156,  2061,  1167,  1179,  1181,  2061,
    2074,   414,  1186,  1736,  1736,  1400,  1402,  1187,  1406,  1401,
    1401,  2679,  1401,   609,  1897,  2150,  2151,  1188,   943,  1189,
    2166,  1191,  2048,  2239,  2064,   881,  1192,  1195,  1196, -1522,
    1198,  1199,  1200,  1201,   946,  2768,  1202,  1825,  1203,  2889,
    1204,   616,  1207,  1242,  1244,   944,  2248,  1248,   947,  2065,
    2191,  2192,  2629,  1256,  1250,   948,  1251, -1021, -1028,  1264,
    1274,   570,  1267,  1268,  2066,   409,  1269,  1270,    45,   616,
   -1522,  1276,  2067,  2047,  1279,  2444, -1018, -1019,  1280,  1281,
    2265,  1282, -1522,  1287,  1290,  1291,  1292, -1522, -1022,  1293,
   -1020, -1522,  1294,  2068, -1522,  1345, -1522,   949,  1301,  1302,
    1308,  1351,  1237,  1358,  1383,  2219,  2220,  2969,  1397,   916,
    1419,   414,  1427,  1771,  1736,  1428,  2680,  2768,  1430,  2639,
    1449, -1522,  1431,  1432,  1445,  1450,  1451,  1475,  1476,  2287,
    1477,  1478,  1482,  2213,  1483,  1484,  1494,  2187,  1489, -1522,
    1492,  1493,  1505,  1735,  1515,  1617,  1735,  1735,  1735,  1735,
    1735,  1735,  1735,  1735,  1735,  2153,  1735,  1510,   414,  1509,
    1513,  1520,  2069,  1521,   633,  1522,   945,  1524,  1525,  1526,
    1538,  1545,  2239,  1547,  1542,  1551,  1260,  1560,   946,  1558,
   -1522,  1561,  1271,  2652,  2653,  1572,  1277,   430, -1522,  1288,
    1593,  1580,   947,  1607,  1599,  1735,  1735,  1609,  2239,   948,
    1611,  1625,  1635,  1615,   881,  2919,  2920,  1636,  1393,  1663,
    1647,  1678,  1978,  1666,  1670,  2154,  1978,  1691,  1699,   836,
    1700,   409,  1341, -1522,  1744,  1759,  2640,  1745,  1758,   408,
     616,   409,   409,  1765,  1788,   453,   454,  1770,  2537,  2538,
     481,   949,   496,  1786,  1550,  1815,  1822,  1827,   515,  1826,
     518,  1832,   576,  1319,  1842,  1838,  1843,  1848,  1320,  1849,
    2153,  1852,  2021,   512,   616,   409,   409,  1853,  1854,  1860,
    2694,  1862,  1864,  1865,  1868,  1871,  2043,  1873,  1866,   414,
     409,  1876,  1877, -1522,  1886,  1888,  1887,  1898,  1900,  2435,
    1929,  1936,  2713,  1899,  1961,  1967,   409,  1969,  1657,  1972,
     409, -1522,  1970,  1973,  1981,  1990,  1974,  1985, -1522, -1522,
   -1522,  2447,  1994,  1999,   609,  1997,  2013,  2000,  2001,  1998,
    2154,  2002,  2016,  2454,  2153,  2022,  2355,  2023,  2041,  2044,
   -1522,  2042,  2055, -1522,  2062, -1522, -1522,  2053,  2054,  2356,
    2079,  2083,  2085,  2084,   414,  2087,   835,  2092,  1735,  2155,
    2156,  2157,  1897,  2158,  2159,  2160,  2161,  2162,  2163,  2093,
    2099,  1692,  1550,  2357,  2164,  2358,   414,  2111,  2115,  1322,
     756,   135,   618,   414,  2117,   635,  2132,  2133,   639,   640,
    1624,  2137,  2136,  2174,  2154,   135,  2138,  2141,  2798,  1323,
    1324,  2142,  1617,  2146,  2149,  2167,  1617,  2173,  2175,  2176,
    1652,  2177,  2782,  2783,  2784,  2390,  2184,  2188,  2189,  2238,
    2251,  2787,  2190,  2195,  2202,  2212,  2209,  2258,  2225,  2406,
     409,  2254,  2255,  2259,  2271,   881,  2695,  2359,  2275,  2276,
    2302,   135,  2297,  2312,  2061,  2461,  1327,  2408,  2465,  2466,
    2467,  2468,  2469,  2470,  2471,  2472,  2473,  2283,  2475,  1328,
    2421,   835,  2285,  2298,  2155,  2156,  2157,  2307,  2158,  2159,
    2160,  2161,  2162,  2163,  2308,  2440,  2306,  2331,  2334,  2164,
    2335,  2313,  2344,   616,  2345,  2347,  2348,  2368,  2372,  2349,
    1669,  2346,  1735,  1735,  2360,  2379,  2382,  2501,  2502,  2361,
    2381,  2314,   409,  2387,  2388,   616,  2393,  2395, -1524,  2405,
    2407,  2409,  2422,   570,  2411,  2419,  2315,  2412,   609,  2509,
    2510,  2511,  2512,  2426,  2439,   835,  2442,  1348,  2362,  2443,
    2316,  1257,  2158,  2159,  2160,  2161,  2162,  2163,  2363,  2449,
    2452,  2169,  2170,  2164,  2317,  2164,  2483,  2484,  2485,  1312,
     620,  2856,  1308,   621,   622,   623,  2496,   624,   625,   626,
     627,   628,   629,  2497,  2515,  2506,  2529,  2958,  2531,  2519,
    2520,  2523, -1524,  2551,  2532,  2549,  2533,  2534,  2552,  2833,
    2589,  2596,  2402,   414,  2573,  2574,  2600,  2602,  2604,  1624,
    1331,  2608,  2613,  2614,  2626,  2627,  2280,  1335,  1336,  1337,
    1338,  1339,  1340,  2620,  2636,  2643,  2649,  2773,  1341,  2364,
    2646,  2656,  2659, -1524,  2667,  2651,  2654,  2773,  2661,  2662,
    1393,  2318,  2535,  2663,  2665, -1524,  2670,  2690,  2319,  2671,
   -1524,  2691,  2700,  2708, -1524,  2704,  2705, -1524,  2710, -1524,
    2714,  2717,  1550,  1550,  2723,  2565,  2727,  2726,  1978,  2728,
    2591,  1978,  1978,  2729,  2737,  2320,  2742,  2739,   679,  2744,
    1978,  2756,  2757,  2746, -1524,   409,   409,  1104,  1735,  2328,
    2758,   695,  2750,  2759,   696,  2761,  2763,  2764,  2772,  2786,
    1735,  1735, -1524,  2776,   707,   409,   409,  2790,  2791,   712,
    2801,  2802,  1984,  2811,  2817,  2328,  2595,  2825,  2819,  2865,
    2839,   729,  2840,  2835,  2836,   731,   733,  2869,  2873,  2874,
    2890,  2893,  2895,  2903,  2909,   631,  2910,  2912,  2891,  2892,
    2922,  2837,  2937, -1524,  2938,  2398,  2957,   143,  2972,  2018,
    2959, -1524,  2973,   908,  1382,  2230,  2701,  2807,  2703,  1958,
     409,   409,   409,  2294,   409,  2311,  2606,  2853,  2610,  2541,
    1939,  1617,   765,  2734,   766,  2253,  1617,  2310,  2911,  1617,
    2936,  2896,  2894,  2918,  2655,  2026, -1524,  1940,  2706,  2611,
    1940,  2760,  2612,  2975,  1601,  2004,  2962,  2725,   144,  2724,
    2369,  2332,  2370,  1897,  2673,  2674,  2943,  1576,  2976,  1649,
     514,  1735,   760,  2657,   145,  2061,   414,   409,  1231,  2624,
    2843,  2883,   414,  1883,  2261,  1881,   512,  2862,  2026,   606,
    2648,  2950,   146,   606,  1897,  2628,  2974,   892,   414,  2821,
    1834,   482,  2905,  1214,  2441,   616, -1524,  2233,  1417,  1218,
    2246,  2237,  1831,  2942,  1415,  2221,  1624,  1420,  1845,  2058,
    1624,   147,  2778,  2417, -1524,   709,   148,  2488,  1995,  2240,
    2126, -1524, -1524, -1524,  2205,  2207,  2605,  2104,  1814,   414,
     149,   414,     0,   976,     0,     0,   414,   603,  2489,   977,
       0,  2696,     0, -1524,     0,     0, -1524,     0, -1524, -1524,
       0,     0,     0,   150,     0,     0,     0,     0,  1090,   414,
       0,     0,     0,     0,     0,     0,     0,  1095,     0,     0,
       0,     0,  1096,     0,     0,     0,   978,     0,     0,     0,
       0,   633,     0,  1144,     0,     0,     0,     0,     0,     0,
     616,   409,   616,     0,  2731,     0,     0,     0,     0,     0,
       0,     0,     0,  2707,     0,     0,     0,   151,  1173,     0,
     135,     0,  1657,     0,     0,     0,     0,     0,   979,  1550,
       0,     0,     0,   980,     0,  2536,   981,  1317,     0,     0,
    2789,     0,  2539,     0,  2540,  1319,  2842,     0,     0,     0,
    1320,     0,  2795,  2796,  2740,  2153,     0,     0,  1141,   152,
       0,  1978,     0,  1617,  1220,   153,  1978,  1978,     0,     0,
     154,  2152,  1239,   414,   414,     0,     0,     0,     0,     0,
       0,   982,   409,     0,     0,     0,     0,     0,   409,     0,
       0,  2153,     0,     0,  2769,   155,   156,     0,     0,     0,
       0,     0,     0,     0,   409,     0,     0,   157,     0,  2580,
    2582,     0,   158,     0,  2648,  2154,     0,     0,     0,     0,
    2875,   159,  2612,     0,     0,     0,     0,   616,     0,     0,
    2884,     0,   983,     0,     0,     0,     0,     0,     0,     0,
    1141,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  2154,  2623,     0,     0,     0,     0,  1321,     0,     0,
       0,  1322,     0,  2857,     0,   958,     0,     0,     0,     0,
       0,   606,     0,     0,     0,     0,   135,     0,     0,     0,
       0,  1323,  1324,     0,     0,  1550,     0,     0,   984,     0,
       0,   960,   631,     0,  1325,     0,     0,     0,     0,     0,
       0,   414,   606,     0,     0,     0,     0,  1897,   606,  1940,
    2838,     0,     0,   985,  2941,     0,  1317,   414,     0,  1318,
       0,     0,     0,     0,  1319,  1326,     0,   414,  1327,  1320,
       0,   609,  2769,     0,     0,     0,   609,   609,     0,     0,
       0,  1328,  1130,  1329,   409,     0,   835,     0,     0,  2155,
    2156,  2157,  2968,  2158,  2159,  2160,  2161,  2162,  2163,     0,
       0,     0,     0,  1368,  2164,  1624,     0,     0,     0,     0,
    1624,     0,     0,  1624,     0,     0,     0,     0,  2693,     0,
       0,     0,   835,     0,     0,  2155,  2156,  2157,   870,  2158,
    2159,  2160,  2161,  2162,  2163,     0,  1319,     0,     0,     0,
    2164,  1320,  1330,  1141,     0,   409,     0,     0,     0,     0,
    1978,  1978,     0,   870,  2769,   609,     0,  2715,  2716,     0,
       0,  2719,  2720,     0,  1241,     0,     0,     0,     0,  2967,
    1141,     0,     0,     0,     0,     0,  1321,     0,     0,     0,
    1322,   409,     0,     0,  1141,     0,  1317,     0,     0,   609,
    1839,     0,     0,     0,  1319,   135,     0,     0,     0,  1320,
    1323,  1324,     0,   414,   414,   414,   414,     0,  2966,     0,
       0,  2930,  1331,  1325,     0,  1332,  1333,  1334,     0,  1335,
    1336,  1337,  1338,  1339,  1340,     0,  2770,     0,   633,     0,
    1341,   135,     0,  2143,   870,  1082,     0,  2153,     0,   606,
       0,     0,     0,     0,  1326,     0,   606,  1327,  1321,     0,
       0,     0,  1322,  2930,     0,     0,     0,     0,     0,     0,
    1328,  1840,  1329,     0,     0,     0,  1143,     0,     0,     0,
       0,     0,  1323,  1324,     0,     0,     0,     0,     0,     0,
    2930,     0,     0,     0,     0,  1325,     0,     0,     0,     0,
       0,   606,     0,     0,     0,     0,   415,  2154,     0,     0,
       0,     0,     0,     0,     0,     0,  1321,  1141,  1592,  1978,
    1322,   507,     0,  2808,     0,   516,     0,     0,     0,  1327,
     603,  1330,     0,  1141,     0,     0,   870,  1423,     0,   560,
    1323,  1324,  1328,     0,     0,     0,     0,  1624,     0,     0,
       0,     0,  1141,  1325,  1634,     0,     0,     0,  1143,     0,
       0,  1641,     0,  1643,  1644,     0,     0,     0,     0,     0,
    2841,     0,     0,     0,     0,  1141,     0,     0,  1487,     0,
     870,     0,     0,     0,  1326,     0,     0,  1327,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1328,  1331,  1329,  1330,  1332,  1333,  1334,   870,  1335,  1336,
    1337,  1338,  1339,  1340,     0,  1141,     0,     0,     0,  1341,
       0,     0,     0,     0,  1141,     0,     0,     0,     0,     0,
       0,   603,     0,   414,   870,   870,     0,   870,   835,     0,
       0,     0, -1525, -1525,     0,  2158,  2159,  2160,  2161,  2162,
    2163,     0,   637,     0,   414,   870,  2164,     0,     0,     0,
       0,  1330,     0,     0,     0,     0,     0,     0,   603,     0,
       0,     0,     0,  1331,     0,     0,   414, -1525, -1525,     0,
    1335,  1336,  1337,  1338,  1339,  1340,     0,     0,     0,     0,
       0,  1341,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1537,     0,     0,     0,  1841,   414,  1902,     0,     0,
     870,     0,  2929,   870,   870,     0,     0,  1423,     0,     0,
       0,  1143,     0,     0,     0,  1082,     0,     0,     0,   603,
       0,  1331,     0,     0,  1332,  1333,  1334,     0,  1335,  1336,
    1337,  1338,  1339,  1340,     0,     0,     0,     0,  1471,  1341,
     603,     0,     0,     0,  2929,     0,     0,  1903,     0,  1574,
       0,     0,  1143,     0,  1904,  1905,  1906,     0,     0,  1141,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  2929,     0,     0,     0,     0,     0,     0,     0,     0,
    1856,     0,     0,     0,     0,     0,     0,     0,  1863,  1629,
       0,  1907,     0,     0,  1867,     0,     0,     0,  1487,     0,
    1872,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1317,     0,   603,     0,     0,     0,     0,     0,  1319,
       0,     0,     0,     0,  1320,     0,     0,     0,     0,  1908,
    1892,     0,  1893,     0,  1909,  1895,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1926,  1927,     0,     0,     0,
       0,   603,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1942,  1945,  1946,     0,  1950,     0,     0,  1952,  1953,
    1954,  1910,     0,     0,  1960,  1143,     0,  1963,  1141,     0,
       0,     0,     0,  1141,  1141,     0,  1911,  1912,  1913,  1914,
    1915,  1143,  1916,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1143,   676,  2169,     0,     0,     0,     0,  2170,     0,     0,
    1917,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1321,     0,  1143,     0,  1322,  1082,     0,     0,     0,
       0,     0,     0,  1798,     0,     0,     0,     0,     0,     0,
       0,  1918,  1132,     0,     0,  1323,  1324,     0,     0,     0,
    1141,     0,     0,     0,     0,   606,     0,   606,  1325,     0,
       0,     0,     0,  1143,     0,   606,     0,     0,  1141,     0,
       0,     0,  1143,  1919,     0,  1920,     0,     0,     0,     0,
       0,     0,     0,     0,   757,     0,     0,     0,     0,  1326,
       0,   759,  1327,     0,     0,     0,  1921,     0,   606,     0,
       0,     0,   767,  1922,  1133,  1328,  1923,  1329,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   759,     0,     0,  1132,     0,     0,     0,     0,  2113,
       0,     0,   870,   870,     0,     0,   759,     0,     0,   895,
     870,     0,     0,   870,   870,     0,     0,     0,     0,     0,
       0,     0,   909,     0,     0,   870,   870,     0,     0,     0,
       0,     0,     0,   870,     0,     0,  1330,   870,   870,   870,
     870,     0,     0,     0,     0,     0,     0,   870,   870,     0,
       0,     0,     0,     0,     0,     0,  1133,     0,     0,  1141,
       0,     0,     0,   870,  1082,     0,     0,   870,     0,     0,
       0,   870,     0,     0,     0,   870,     0,   456,   870,   870,
     870,   870,   870,   870,   870,   870,   870,  1143,   457,   870,
       0,     0,     0,     0,   870,     0,     0,   870,     0,     0,
    1087,     0,     0,     0,  1487,     0,  1331,     0,   458,  1332,
    1333,  1334,     0,  1335,  1336,  1337,  1338,  1339,  1340,     0,
       0,     0,  1996,     0,  1341,     0,     0,     0,   459,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   870,     0,   460,     0,     0,  1164,  1165,  1166,
       0,     0,     0,     0,     0,     0,     0,  1132,     0,     0,
       0,     0,   461,     0,     0,  2249,  2250,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1082,   653,     0,     0,
       0,     0,     0,     0,  1132,     0,     0,     0,     0,     0,
       0,   462,   870,     0,     0,     0,   463,     0,  1132,  2266,
    2267,     0,   759,     0,     0,     0,  1143,     0,   654,     0,
     464,  1471,  1143,     0,     0,     0,     0,     0,     0,  1133,
     655,     0,     0,   759,     0,     0,   656,     0,   657,  1141,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  2112,   658,     0,  1133,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1141,  1141,
    1133,  1141,   659,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1141,     0,  1141,     0,
       0,   870,     0,     0,     0,     0,     0,   465,  1143,     0,
       0,   660,     0,     0,     0,   466,     0,     0,     0,     0,
       0,     0,     0,     0,   870,     0,  1143,     0,   467,     0,
     661,     0,     0,     0,     0,     0,     0,     0,  1141,     0,
       0,  1132,     0,     0,     0,     0,     0,     0,     0,   468,
       0,     0,     0,   469,   662,   470,     0,  1132,     0,     0,
     471,     0,  1385,     0,     0,     0,     0,     0,  1141,     0,
       0,     0,     0,     0,  2392,     0,  1132,     0,     0,     0,
       0,     0,   606,     0,     0,   472,   473,  1317,  1141,     0,
       0,   870,     0,     0,     0,  1319,     0,   474,     0,  1132,
    1320,     0,   475,  1133,     0,     0,     0,   663,     0,     0,
       0,   476,     0,     0,  1141,     0,     0,     0,   870,  1133,
     477,     0,     0,     0,  1141,     0,     0,     0,   467,     0,
       0,     0,     0,  2247,     0,  1141,   870,     0,  1133,  1132,
       0,     0,     0,     0,     0,     0,  1141,  1143,  1132,   664,
    1514,     0,     0,   665,     0,   666,     0,     0,     0,     0,
     667,  1133,     0,     0,     0,     0,   870,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1141,     0,     0,
    2270,  1141,  2273,     0,     0,   668,   669,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   670,   870,   870,
       0,  1133,   671,   870,     0,     0,     0,  1321,     0,     0,
    1133,  1322,     0,     0,     0,   870,   870,   870,   870,     0,
     672,     0,  2290,     0,   870,     0,  1141,     0,     0,     0,
       0,  1323,  1324,   870,   870,     0,   870,     0,  1135,     0,
       0,     0,     0,     0,  1325,     0,     0,     0,   870,     0,
     870,     0,  2301,     0,   870,     0,     0,     0,     0,     0,
       0,     0,  1141,     0,     0,     0,     0,     0,     0,     0,
       0,   870,     0,     0,     0,  1326,  1141,     0,  1327,     0,
       0,   606,     0,   870,   870,     0,     0,     0,     0,     0,
       0,  1328,     0,  1132,     0,     0,     0,     0,   870,     0,
    1141,     0,     0,     0,   870,     0,     0,     0,  2378,     0,
       0,     0,   870,   870,   870,     0,     0,  1143,     0,  2290,
    1135,     0,     0,     0,     0,     0,     0,     0,   870,  2547,
    2548,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1471,  1143,     0,  1143,
       0,     0,  1330,     0,     0,  1133,     0,     0,     0,     0,
       0,  2424,     0,     0,  1143,  1487,  1143,     0,  1642,     0,
       0,  1645,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2584,  2586,  2588,     0,  2590,     0,
       0,  1141,     0,   759,   759,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1677,  1143,     0,     0,     0,
    2453,     0,  1132,     0,     0,     0,     0,  1132,  1132,     0,
       0,     0,  1331,     0,     0,  1332,  1333,  1334,     0,  1335,
    1336,  1337,  1338,  1339,  1340,     0,  1143,     0,     0,     0,
    1341,     0,     0,     0,     0,     0,  2474,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1143,     0,     0,     0,
    2482,     0,     0,     0,     0,     0,  1141,     0,     0,     0,
       0,  1319,     0,     0,  1133,     0,  1320,     0,     0,  1133,
    1133,  1082,  1143,  1135,  2498,     0,     0,     0,     0,     0,
       0,     0,  1143,     0,  1132,     0,     0,     0,     0,  1136,
       0,     0,     0,  1143,     0,     0,     0,     0,     0,     0,
    1135,     0,  1132,     0,  1143,  1813,     0,     0,     0,     0,
       0,     0,     0,     0,  1135,     0,     0,     0,   606,     0,
       0,     0,   606,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1143,     0,     0,     0,  1143,
       0,  2193,     0,     0,     0,     0,  1133,     0,     0,   606,
       0,     0,  1835,     0,     0,  2702,     0,     0,     0,     0,
       0,     0,     0,     0,  1133,  2546,     0,     0,     0,     0,
       0,  1136,     0, -1525,     0,     0,     0,  1322,     0,     0,
       0,   870,     0,  1317,  1143,  1141,     0,     0,     0,     0,
       0,  1319,     0,   870,     0,     0,  1320,  1323,  1324,   870,
       0,     0,     0,   870,     0,     0,     0,     0,   870,     0,
   -1525,   870,   870,   870,   870,   870,   870,   870,   870,   870,
    1143,   870,     0,  1132,     0,   870,   870,     0,     0,     0,
       0,     0,     0,     0,  1143,     0,  2755,  1135,     0,   870,
    2599,     0,  2392,     0,  1327,     0,   870,     0,     0,   870,
       0,   870,     0,  1135,     0,     0,     0,  1328,  1143,   870,
     870,   870,     0,     0,     0,   870,     0,     0,   870,     0,
       0,     0,  1135,  1951,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1133,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1135,     0,     0,     0,     0,
       0,     0,     0,  1321,     0,     0,     0,  1322,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0, -1525,     0,
       0,     0,     0,     0,     0,     0,     0,  1323,  1324,     0,
       0,     0,     0,     0,  1136,  1135,  1141,     0,  2017,     0,
    1325,     0,     0,     0,  1135,     0,     0,     0,     0,  1143,
       0,     0,     0,     0,     0,     0,     0,     0,  1141,     0,
    2027,  1136,     0,     0,     0,     0,  1141,  2045,     0,  2498,
       0,  1326,     0,     0,  1327,  1136,     0,     0,     0,     0,
       0,     0,  1138,     0,     0,     0,     0,  1328,  1331,  1329,
       0,     0,     0,  1132,     0,  1335,  1336,  1337,  1338,  1339,
    1340,     0,     0,     0,     0,     0,  1341,     0,     0,     0,
       0,     0,     0,   870,     0,     0,     0,     0,     0,     0,
       0,     0,  1132,  1132,  1143,  1132,     0,     0,     0,     0,
       0,     0,     0,  1139,     0,     0,     0,     0,     0,     0,
    1132,     0,  1132,     0,     0,     0,     0,     0,  1330,     0,
       0,     0,     0,     0,     0,  1133,     0,     0,     0,  2879,
       0,     0,     0,     0,  1138,     0,     0,   606,     0,     0,
       0,     0,   606,     0,     0,   606,     0,     0,     0,  1141,
       0,     0,  1132,     0,  1133,  1133,     0,  1133,     0,  1135,
       0,     0,     0,     0,     0,  2897,     0,     0,  1136,     0,
       0,     0,  1133,     0,  1133,     0,   870,     0,     0,     0,
       0,     0,  1132,     0,  1136,  1139,     0,     0,  1331,     0,
    2378,  1332,  1333,  1334,     0,  1335,  1336,  1337,  1338,  1339,
    1340,     0,  1132,  1136,     0,  1757,  1341,     0,     0,     0,
       0,     0,  2498,     0,  1133,     0,     0,   870,   870,     0,
    2794,     0,   870,  1143,     0,     0,  1136,     0,  1132,   870,
     870,     0,     0,   870,     0,     0,     0,  2218,  1132,     0,
       0,     0,     0,     0,  1133,     0,     0,     0,     0,  1132,
       0,     0,     0,     0,     0,     0,     0,     0,  1141,     0,
    1132,     0,     0,     0,  1133,     0,  1136,     0,     0,     0,
       0,     0,     0,     0,     0,  1136,     0,     0,  1135,     0,
       0,     0,     0,  1135,  1135,     0,     0,     0,     0,     0,
    1133,  1132,     0,     0,     0,  1132,     0,  1138,     0,     0,
    1133,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1133,     0,     0,     0,   870,     0,     0,  1141,     0,
       0,     0,  1133,     0,  1138,     0,     0,     0,     0,     0,
       0,     0,     0,  2498,     0,     0,     0,     0,  1138,     0,
    1132,     0,     0,     0,     0,     0,     0,     0,  1139,     0,
       0,     0,   606,  1133,     0,     0,     0,  1133,     0,     0,
    1135,     0,     0,     0,     0,   870,     0,     0,     0,   606,
       0,     0,     0,     0,  1143,  1139,  1132,     0,  1135,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1139,
    1132,     0,     0,   870,     0,     0,  1143,     0,     0,     0,
       0,     0,  1133,     0,  1143,   870,   870,     0,     0,   870,
       0,     0,     0,     0,  1132,     0,   870,   870,  1140,     0,
    1136,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   870,     0,     0,     0,  1133,     0,
       0,     0,  2921,     0,     0,     0,     0,     0,     0,     0,
    2374,     0,  1133,   606,     0,     0,  2380,     0,     0,     0,
       0,  1138,     0,     0,     0,     0,     0,  1317,     0,     0,
    2128,     0,  2394,     0,     0,  1319,  1133,  1138,     0,     0,
    1320,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     606,   870,     0,     0,     0,     0,  1138,     0,     0,  1135,
    1140,     0,  1487,     0,     0,  1132,     0,     0,     0,     0,
       0,     0,  1139,  2430,     0,  2431,   870,  1143,     0,  1138,
    2433,     0,     0,     0,     0,     0,     0,     0,  1139,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1136,
       0,     0,     0,   759,  1136,  1136,     0,  1139,     0,     0,
       0,   606,     0,     0,     0,     0,     0,     0,     0,  1138,
       0,     0,     0,     0,     0,     0,     0,  1133,  1138,     0,
    1139,     0,   606,     0,     0,     0,     0,     0,     0,     0,
    1132,     0,     0,     0,     0,     0,     0,  1321,     0,     0,
       0,  1322,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1139,  1323,  1324,     0,     0,     0,     0,     0,     0,  1139,
       0,  1136,     0,     0,  1325,     0,  1143,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1136,
       0,     0,  1133,     0,     0,   606,     0,  2513,  2514,     0,
       0,     0,     0,     0,     0,  1326,     0,  1142,  1327,     0,
       0,     0,     0,  1140,     0,     0,     0,     0,     0,  1135,
       0,  1328,     0,  1329,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   606,     0,     0,  1143,     0,     0,     0,
    1140,     0,     0,     0,     0,     0,     0,     0,  1135,  1135,
       0,  1135,     0,     0,  1140,     0,     0,     0,     0,  1132,
       0,     0,     0,  1138,     0,     0,  1135,     0,  1135,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1330,     0,     0,     0,     0,     0,     0,  1142,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1135,     0,
    1136,     0,     0,     0,  1139,     0,     0,     0,     0,     0,
       0,  1133,     0,     0,     0,  2576,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1135,     0,
       0,  2597,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  2601,  1331,     0,     0,  1332,  1333,  1334,  1135,  1335,
    1336,  1337,  1338,  1339,  1340,     0,     0,     0,     0,     0,
    1341,     0,     0,     0,     0,     0,     0,  1140,     0,     0,
       0,     0,  1138,     0,  1135,     0,     0,  1138,  1138,     0,
       0,     0,     0,  1140,  1135,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1135,     0,     0,     0,     0,
    1132,     0,  1140,     0,     0,     0,  1135,     0,     0,     0,
       0,     0,     0,     0,     0,  1319,     0,     0,     0,     0,
    1320,     0,  1132,  1139,     0,  1140,     0,     0,  1139,  1139,
    1132,     0,     0,     0,     0,     0,     0,  1135,     0,     0,
       0,  1135,  1142,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1138,     0,     0,     0,     0,     0,
       0,     0,  1133,     0,     0,  1140,     0,     0,     0,  1469,
    1136,     0,  1138,     0,  1140,     0,     0,  2686,  2687,  2688,
    2689,     0,     0,  1142,  1133,     0,  1135,     0,  1319,     0,
       0,     0,  1133,  1320,     0,  2203,     0,     0,     0,  1136,
    1136,     0,  1136,     0,     0,  1139,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1136,     0,  1136,
       0,     0,  1135,  1139,     0,     0,     0, -1525,     0,     0,
       0,  1322,     0,  1317,     0,     0,  1135,     0,     0,     0,
       0,  1319,     0,  1132,     0,     0,  1320,     0,     0,     0,
       0,  1323,  1324,     0,     0,     0,     0,     0,     0,  1136,
    1135,     0,     0,     0, -1525,     0,     0,     0,  2503,     0,
       0,  1317,     0,     0,     0,     0,     0,     0,     0,  1319,
       0,     0,     0,     0,  1320,     0,     0,     0,     0,  1136,
       0,     0,     0,  1138,     0,     0,     0,     0,  1327,     0,
   -1525,     0,     0,     0,  1322,  1133,  1142,     0,     0,  1136,
       0,  1328,     0,     0,     0,     0,     0,     0,     0,  1140,
       0,     0,  1142,     0,  1323,  1324,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1136,     0, -1525,     0,     0,
       0,  1142,     0,     0,  1139,  1136,     0,     0,     0,     0,
       0,  1135,  1132,  1321,     0,     0,  1136,  1322,     0,     0,
       0,     0,     0,     0,  1142,     0,     0,  1136,     0,     0,
       0,  1327, -1525,     0,     0,     0,     0,  1323,  1324,     0,
       0,     0,     0,     0,  1328,     0,     0,     0,     0,     0,
    1325,  1321,     0,     0,     0,  1322,     0,  2813,  1136,     0,
       0,     0,  1136,     0,  1142,     0,     0,     0,     0,     0,
       0,     0,  1132,  1142,  1133,  1323,  1324,     0,   759,     0,
       0,  1326,     0,     0,  1327,     0,  1135,     0,  1325,     0,
       0,     0,     0,   855,     0,     0,     0,  1328,  1140,  1329,
    2851,     0,  1331,  1140,  1140, -1525,     0,  1136,     0,  1335,
    1336,  1337,  1338,  1339,  1340,     0,     0,     0,   903,  1326,
    1341,     0,  1327,  1138,     0,     0,     0,     0,     0,     0,
    2860,     0,     0,     0,  1133,  1328,     0,  1329,     0,     0,
       0,     0,     0,  1136,     0,     0,     0,  2147,     0,     0,
       0,     0,  1138,  1138,     0,  1138,     0,  1136,  1330,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1138,     0,  1138,     0,  1139,  1331,     0,     0,     0,     0,
    1140,  1136,  1335,  1336,  1337,  1338,  1339,  1340,     0,     0,
       0,     0,     0,  1341,     0,     0,  1330,     0,  1140,  1003,
       0,     0,  2130,  1139,  1139,     0,  1139,     0,     0,     0,
       0,     0,  1138,     0,     0,  1135,     0,     0,  1142,     0,
       0,  1139,     0,  1139,     0,     0,     0,     0,  1331,     0,
       0,  1332,  1333,  1334,     0,  1335,  1336,  1337,  1338,  1339,
    1340,     0,  1138,     0,     0,     0,  1341,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1138,  1139,     0,     0,  1331,     0,     0,  1332,
    1333,  1334,  1136,  1335,  1336,  1337,  1338,  1339,  1340,     0,
       1,     0,     0,     0,  1341,     0,     0,     0,  1138,     0,
       2,     3,     4,  1139,     0,     0,     0,     0,  1138,     0,
       0,     0,     0,     0,     0,     5,     0,     0,     0,  1138,
       0,     0,     0,  1139,     0,     0,     0,     0,     0,  1140,
    1138,     0,     0,     0,     6,     0,     7,     8,     0,     0,
       0,     9,    10,     0,     0,  1262,     0,  1878,     0,  1139,
      11,    12,  1469,  1469,     0,     0,     0,  1136,     0,  1139,
       0,  1138,     0,     0,     0,  1138,    13,     0,     0,    14,
    1139,     0,  1286,  1319,     0,    15,  1135,     0,  1320,     0,
       0,  1139,     0,     0,    16,     0,     0,     0,     0,     0,
      17,     0,     0,     0,     0,    18,     0,    19,  1135,  1305,
    1306,    20,  1309,     0,     0,     0,  1135,     0,     0,     0,
    1138,     0,  1139,    21,     0,     0,  1139,     0,     0,     0,
    1346,     0,     0,     0,     0,     0,     0,     0,     0,  1142,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    22,
       0,     0,     0,     0,     0,     0,  1138,  1142,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1138,  1139,    23,    24,     0,     0,     0,     0,    25,     0,
       0,     0,     0,     0,     0,  1405,    26,     0,  1412,  1414,
       0,     0,     0,     0,  1138,  1321,  1136,     0,     0,  1322,
       0,     0,     0,    27,     0,     0,     0,  1139,     0,  1140,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1323,
    1324,  1139,     0,     0,     0,     0,     0,     0,     0,  1135,
       0,     0,  1325,    28,     0,     0,     0,     0,  1140,  1140,
       0,  1140,     0,    29,     0,  1139,    30,     0,    31,     0,
       0,     0,    32,     0,     0,     0,  1140,    33,  1140,     0,
      34,     0,     0,  1326,    35,     0,  1327,     0,     0,    36,
       0,     0,     0,     0,    37,     0,     0,    38,  1142,  1328,
       0,  1343,     0,    39,     0,  1138,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1140,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      40,     0,     0,     0,     0,     0,     0,     0,    41,  1319,
      42,     0,     0,    43,  1320,     0,    44,     0,  1140,  1343,
       0,     0,     0,     0,     0,     0,  1139,     0,  1135,     0,
    1330,     0,     0,     0,     0,     0,     0,  1136,  1140,     0,
       0,     0,     0,     0,     0,  1317,     0,     0,  2178,     0,
    1138,     0,     0,  1319,    45,     0,     0,     0,  1320,  1136,
       0,     0,     0,     0,  1140,     0,     0,  1136,     0,     0,
       0,     0,     0,     0,  1140,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1140,     0,     0,  1135,  2504,
       0,     0,     0,     0,     0,     0,  1140,     0,     0,     0,
    1331,  1139,     0,  1332,  1333,  1334,     0,  1335,  1336,  1337,
    1338,  1339,  1340,     0,     0,     0,     0,     0,  1341,  1343,
       0, -1525,     0,     0,     0,  1322,     0,  1140,     0,     0,
       0,  1140,     0,     0,     0,     0,     0,     0,  1142,     0,
       0,     0,     0,     0,     0,  1323,  1324,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0, -1525,     0,
       0,     0,     0,     0,     0,  1321,     0,  1469,  1469,  1322,
    1469,     0,     0,     0,     0,     0,  1140,     0,     0,  1138,
    1136,     0,     0,     0,     0,  1142,     0,  1142,     0,  1323,
    1324,     0,  1327,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1325,     0,     0,  1328,     0,     0,     0,     0,
       0,     0,  1140,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1703,  1140,  1142,     0,  1705,
    1139,     0,     0,  1326,     0,     0,  1327,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1727,  1328,
    1140,  1329,  1730,     0,     0,  1741,     0,  1142,     0,     0,
       0,     0,  1748,  1753,     0,     0, -1525,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1469,  1763,     0,
       0,     0,  1769,     0,     0,     0,  1780,     0,     0,  1136,
    1787,     0,     0,  1789,  1790,  1791,  1792,  1793,  1794,  1795,
    1796,  1797,     0,  1469,  1799,     0,     0,     0,     0,   855,
    1330,     0,     0,  1142,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1142,  1317,  1343,     0,     0,     0,
    1138,     0,     0,  1319,     0,  1469,  1331,     0,  1320,     0,
       0,  1140,     0,  1335,  1336,  1337,  1338,  1339,  1340,  1136,
       0,     0,  1138,     0,  1341,     0,     0,   903,     0,     0,
    1138,     0,     0,     0,     0,     0,  1142,     0,     0,     0,
    1142,     0,     0,     0,     0,     0,     0,     0,  1343,     0,
    1331,  1139,     0,  1332,  1333,  1334,     0,  1335,  1336,  1337,
    1338,  1339,  1340,     0,     0,     0,     0,     0,  1341,     0,
       0,     0,  1343,  1139,     0,     0,     0,  1870,  1737,     0,
       0,  1139,     0,     0,     0,  1142,  1140,     0,     0,  1317,
       0,  1343,  1343,     0,     0,  1343,     0,  1319,     0,     0,
       0,  2183,  1320,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1321,     0,     0,     0,  1322,
       0,  1142,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1343,     0,     0,  1142,     0,     0,     0,  1323,
    1324,     0,     0,  1138,     0,     0,     0,     0,     0,     0,
       0,     0,  1325,     0,     0,     0,     0,     0,     0,  1142,
    1319,     0,     0,     0,     0,  1320,  1968,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1326,     0,     0,  1327,     0,     0,  1993,
       0,  1343,     0,     0,  1139,     0,     0,     0,  1343,  1328,
    1343,  1329,     0,     0,     0,     0,     0,     0,     0,  1321,
       0,     0,     0,  1322,     0,  1140,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1323,  1324,     0,     0,     0,     0,     0,
    2507,     0,     0,     0,     0,     0,  1325,     0,     0,  1317,
    1142,     0,  1138,     0,     0,     0,  2076,  1319,     0,     0,
    1330,     0,  1320,     0,     0,     0,     0,     0,     0,     0,
       0,     0, -1525,     0,     0,     0,  1322,  1326,     0,     0,
    1327,     0,     0,  2091,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1328,     0,  1329,  1323,  1324,     0,     0,
       0,   855,     0,  1139,     0,     0,     0,     0,     0, -1525,
       0,     0,  1138,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1142,     0,     0,     0,     0,
    1331,  2124,     0,  1332,  1333,  1334,     0,  1335,  1336,  1337,
    1338,  1339,  1340,  1327,     0,     0,     0,     0,  1341,     0,
       0,     0,     0,     0,  1330,     0,  1328,     0,     0,     0,
       0,     0,     0,  1139,     0,     0,  1140,     0,     0,  1321,
       0,     0,     0,  1322,     0,     0,     0,     0,     0,     0,
    1753,     0,  1753,  1753,     0,     0,     0,     0,  1140,  2186,
       0,     0,     0,  1323,  1324,     0,  1140,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1325,     0,     0,     0,
       0,     0,     0,  2206,     0,  2208,     0, -1525,     0,  2211,
       0,     0,     0,     0,  1331,     0,     0,  1332,  1333,  1334,
       0,  1335,  1336,  1337,  1338,  1339,  1340,  1326,     0,  2299,
    1327,     0,  1341,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1328,  1142,  1329,     0,     0,     0,     0,
       0,     0,     0,   903,     0,     0,     0,     0,     0,  1405,
       0,     0,     0,     0,     0,     0,     0,  1414,  1414,  1412,
       0,     0,     0,     0,     0,     0,     0,  1331,     0,  1343,
       0,  1343,     0,  2252,  1335,  1336,  1337,  1338,  1339,  1340,
       0,     0,     0,     0,     0,  1341,     0,     0,     0,  1140,
       0,     0,     0,  1343,  1330,     0,  1343,     0,  1737,  1737,
    2165,     0,     0,  1737,     0,  1317,     0,  1343,     0,     0,
       0,     0,     0,  1319,  1343,     0,     0,     0,  1320,  1343,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1343,
       0,  1317,     0,  1737,  1737,  1343,     0,     0,     0,  1319,
       0,     0,     0,     0,  1320,     0,  1343,     0,     0,     0,
       0,     0,     0,  1343,     0,  1343,  1343,  1343,  1343,  1343,
    1343,  1343,  1343,  1343,  1331,  1343,     0,  1332,  1333,  1334,
       0,  1335,  1336,  1337,  1338,  1339,  1340,     0,     0,     0,
       0,  2333,  1341,     0,     0,  1142,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1140,     0,
       0,     0,     0,     0,     0,     0,     0,  1142,     0,     0,
       0,     0,     0,     0,     0,  1142,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1321,     0,     0,     0,  1322,
       0,     0,     0,     0,     0,     0,  1343,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1323,
    1324,  1321,     0,     0,     0,  1322,     0,     0,  1140,     0,
       0,     0,  1325,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1323,  1324,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1325,     0,
       0,     0,     0,  1326,     0,     0,  1327,  1319,     0,     0,
       0,     0,  1320,     0,     0,     0,     0,     0,     0,  1328,
       0,  1329,     0,     0,     0,     0,     0,     0,     0,  1326,
       0,     0,  1327,     0,     0,     0,     0,     0,  1142,     0,
       0,     0,     0,     0,  1343,  1328,  2451,  1329,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  2456,     0,
       0,     0,     0,     0,  2457,     0,     0,     0,  2459,  1343,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1330,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2476,  2477,     0,     0,     0,     0,     0,     0,     0,     0,
    1317,     0,  2450,     0,     0,     0,  1330,     0,  1319,     0,
       0,  2490,     0,  1320,  2493,     0,  2495,     0,     0,  1321,
       0,     0,     0,  1322,  2500,     0,  1317,     0,     0,     0,
    2505,     0,     0,  2508,  1319,     0,     0,     0,     0,  1320,
       0,     0,     0,  1323,  1324,     0,     0,  1142,     0,     0,
    1331,     0,  1343,  1332,  1333,  1334,  1325,  1335,  1336,  1337,
    1338,  1339,  1340,     0,     0,     0,     0,  1343,  1341,     0,
       0,     0,     0,     0,     0,     0,  1331,     0,     0,  1332,
    1333,  1334,     0,  1335,  1336,  1337,  1338,  1339,  1340,     0,
    1327,     0,     0,  2487,  1341,     0,     0,     0,     0,     0,
    1343,     0,     0,  1328,     0,     0,     0,  1142,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1321,     0,     0,     0,  1322,     0,  2165,  2165,  1737,     0,
       0,  1737,  1737,  1737,  1737,  1737,  1737,  1737,  1737,  1737,
       0,  1737,  2165,     0,  1323,  1324,  1321,     0,     0,     0,
    1322,     0,     0,     0,     0,     0,     0,  1325,     0,     0,
       0,     0,  1343,     0,  1330,     0,     0,  2165,  2165,     0,
    1323,  1324,     0,     0,     0,     0,     0,     0,     0,     0,
    1737,  1737,  1343,  1325,  1343,     0,     0,  1343,  1326,     0,
       0,  1327,  1317,     0,     0,     0,     0,     0,     0,     0,
    1319,     0,     0,     0,  1328,  1320,  1329,     0,     0,     0,
       0,     0,     0,     0,  1326,     0,     0,  1327,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1343,     0,
    1328,     0,  1329,     0,  1331,     0,     0,  1332,  1333,  1334,
       0,  1335,  1336,  1337,  1338,  1339,  1340,     0,     0,     0,
       0,     0,  1341,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1330,     0,     0,  1317,     0,
       0,  2660,     0,     0,     0,     0,  1319,     0,     0,     0,
       0,  1320,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1330,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1321,     0,     0,     0,  1322,  2675,     0,     0,
       0,     0,     0,     0,  2681,  2682,     0,     0,  2684,     0,
       0,     0,     0,  1737,     0,  1331,  1323,  1324,  1332,  1333,
    1334,     0,  1335,  1336,  1337,  1338,  1339,  1340,     0,  1325,
       0,     0,  2525,  1341,     0,     0,     0,     0,     0,     0,
       0,  1331,     0,     0,  1332,  1333,  1334,     0,  1335,  1336,
    1337,  1338,  1339,  1340,     0,     0,     0,     0,  2664,  1341,
    1326,     0,     0,  1327,     0,     0,     0,     0,  1321,     0,
       0,     0,  1322,     0,     0,     0,  1328,     0,  1329,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2732,     0,  1323,  1324,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1325,     0,  1343,     0,     0,
       0,     0,  1343,  1343,     0,  1343,     0,  2165,     0,     0,
       0,  2165,  2165,  2165,  2165,  2165,  2165,  2165,  2165,  2165,
       0,  2165,  1343,  1343,     0,     0,  1326,  1330,     0,  1327,
    2775,     0,     0,     0,     0,     0,  1343,  1737,  1737,  1343,
       0,  1343,  1328,     0,  1329,     0,  1343,  2165,  2165,     0,
       0,  1343,     0,     0,  1343,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2797,     0,     0,     0,     0,     0,
       0,     0,  2799,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1331,     0,  2805,
    1332,  1333,  1334,  1330,  1335,  1336,  1337,  1338,  1339,  1340,
       0,     0,     0,     0,  2685,  1341,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  2165,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  2844,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1331,     0,     0,  1332,  1333,  1334,     0,
    1335,  1336,  1337,  1338,  1339,  1340,     0,     0,     0,     0,
    2815,  1341,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1343,     0,     0,     0,
       0,     0,     0,  1737,     0,     0,     0,     0,     0,  2165,
    2165,  1343,     0,     0,     0,  1737,  1737,  1343,  1343,     0,
    1343,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1343,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1343,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  2165,  1737,     0,     0,     0,
       0,  2165,  2165,  1343,     0,  1343,     0,     0,     0,     0,
       0,  1343,     0,   161,   162,   163,   164,   165,   166,   167,
     168,     0,   169,   170,     0,     0,     0,     0,     0,     0,
       0,   171,   172,     0,   173,     0,   174,   175,   176,     0,
     177,     0,   178,   179,     0,   180,   181,   182,   183,   184,
    1343,     0,   185,   186,   187,   188,     0,   189,   190,   191,
     192,   193,     0,  2165,   194,   195,   196,   197,   198,     0,
     199,   200,   201,   202,     0,   203,   204,   205,     0,   206,
       0,     0,     0,     0,     0,   207,   208,   209,   210,   211,
     212,   213,   214,     0,   215,     0,   216,   217,   218,   219,
     220,     0,   221,     0,     0,   222,   223,   224,   225,     0,
     226,   227,   228,     0,   229,     0,   230,   231,   232,   233,
     234,   235,   236,     0,   237,   238,   239,     0,   240,     0,
     241,     0,     0,     0,   242,   243,     0,   244,   245,     0,
     246,     0,   247,   248,   249,   250,     0,   251,   252,   253,
       0,   254,   255,   256,   257,   258,   259,     0,     0,   260,
     261,   262,   263,   264,   265,   266,     0,   267,     0,   268,
       0,     0,   269,     0,   270,   271,   272,   273,   274,     0,
     275,     0,   276,     0,     0,   277,   278,   279,     0,     0,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,   291,     0,   292,     0,   293,   294,   295,   296,   297,
     298,   299,   300,   301,     0,   302,   303,     0,   304,     0,
     305,   306,   307,   308,     0,     0,   309,     0,     0,     0,
     310,   311,     0,     0,   312,     0,     0,   313,   314,   315,
     316,   317,     0,   318,   319,   320,   321,   322,     0,   323,
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
     333,   334,   335,   336,   337,   338,   339,   340,     0,   341,
     342,     0,   343,   344,   345,   346,   347,   348,   349,   350,
     351,   352,     0,   353,   354,   355,     0,   356,   357,   358,
     359,     0,   360,   361,     0,   362,   363,   364,   365,   366,
     367,   368,   369,   370,   371,     0,   372,   373,     0,   374,
     375,   376,   377,     0,   378,   379,     0,     0,   380,   381,
     382,   383,     0,   384,   385,   386,   387,   388,     0,     0,
     389,   390,   391,   392,     0,  2847,   393,   394,   395,   396,
     397,   398,     0,   399,   400,     0,     0,   401,   402,   403,
     404,   405,   406,     0,     0,     0,   407,     0,     0,     0,
       0,     0,     0,   161,   162,   163,   164,   165,   166,   167,
     168,  1817,   169,   170,     0, -1296,     0,     0,   780,     0,
   -1296,   171,   172,     0,   173,   582,   174,   175,   176,   583,
     781,   584,   782,   783,     0,   180,   181,   182,   183,   184,
     784,   785,   185,   786,   787,   188,     0,   189,   190,   191,
     192,   788,     0,     0,   194,   195,   196,   197,   198,     0,
     199,   200,   789,   202,     0,   203,   204,   205,   585,   206,
     790,   791,   792,   793,   794,   207,   208,   209,   210,   211,
     795,   796,   214,     0,   215,     0,   216,   217,   218,   219,
     220,     0,   221,  1818,     0,   222,   797,   224,   225,     0,
     226,   227,   228,     0,   229,     0,   230,   231,   232,   798,
     234,   235,   799,   800,   237,   238,   801,     0,   240,     0,
     241,   586,     0,   587,   242,   243,     0,   244,   802,     0,
     246,     0,   247,   248,   249,   250,   588,   251,   252,   253,
       0,   254,   255,   256,   257,   258,   259,     0,   589,   260,
     261,   262,   263,   264,   803,   804,     0,   805,     0,   268,
     590,   591,   269,   592,   270,   271,   272,   273,   274,     0,
     806,   593,   276,   594,     0,   277,   278,   279,   807,   808,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,   809,   595,   810,   412,   293,   294,   295,   296,   297,
     298,   299,   300,   301,   811,   302,   303,   596,   304,   812,
     813,   814,   307,   308,     0,     0,   309,   413,     0,     0,
     815,   311,     0,     0,   312,   597,   598,   816,   314,   315,
     316,   317,     0,   817,   319,   320,   321,   322,     0,   323,
     324,   325,   326,   327,   328,   818,   330,   331,     0,   332,
     333,   334,   335,   336,   337,   338,   339,   340,     0,   341,
     342,   599,   343,   344,   819,   346,   347,   348,   349,   350,
     351,   352,     0,   353,   354,   355,   820,   356,   357,   358,
     359,   600,   360,   821,     0,   362,   363,   364,   365,   366,
     367,   368,   369,   822,   371,     0,   372,   373,     0,   374,
     375,   376,   377,     0,   823,   824,     0,     0,   380,   825,
     382,   826,   827,   384,   385,   386,   387,   388,     0,   828,
     389,   390,   391,   392,   829,     0,   393,   394,   395,   396,
     830,   398,   601,   399,   400,     0,     0,   401,   402,   403,
     404,   405,   406,     0,     0,     0,   831,   832,   509,   833,
     834,   835,   836,   837,     0,     0,     0,     0,   838,   839,
    1819,     0,     0,     0,     0,     0,     0,   841,  1820,   161,
     162,   163,   164,   165,   166,   167,   168,     0,   169,   170,
       0,     0,     0,     0,   780,     0,     0,   171,   172,     0,
     173,   582,   174,   175,   176,   583,   781,   584,   782,   783,
       0,   180,   181,   182,   183,   184,   784,   785,   185,   786,
     787,   188,     0,   189,   190,   191,   192,   788,     0,     0,
     194,   195,   196,   197,   198,     0,   199,   200,   789,   202,
       0,   203,   204,   205,   585,   206,   790,   791,   792,   793,
     794,   207,   208,   209,   210,   211,   795,   796,   214,     0,
     215,     0,   216,   217,   218,   219,   220,     0,   221,     0,
       0,   222,   797,   224,   225,     0,   226,   227,   228,     0,
     229,     0,   230,   231,   232,   798,   234,   235,   799,   800,
     237,   238,   801,     0,   240,     0,   241,   586,     0,   587,
     242,   243,     0,   244,   802,     0,   246,     0,   247,   248,
     249,   250,   588,   251,   252,   253,     0,   254,   255,   256,
     257,   258,   259,     0,   589,   260,   261,   262,   263,   264,
     803,   804,     0,   805,     0,   268,   590,   591,   269,   592,
     270,   271,   272,   273,   274,     0,   806,   593,   276,   594,
       0,   277,   278,   279,   807,   808,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   809,   595,   810,
     412,   293,   294,   295,   296,   297,   298,   299,   300,   301,
     811,   302,   303,   596,   304,   812,   813,   814,   307,   308,
       0,     0,   309,   413,     0,     0,   815,   311,     0,     0,
     312,   597,   598,   816,   314,   315,   316,   317,     0,   817,
     319,   320,   321,   322,     0,   323,   324,   325,   326,   327,
     328,   818,   330,   331,     0,   332,   333,   334,   335,   336,
     337,   338,   339,   340,     0,   341,   342,   599,   343,   344,
     819,   346,   347,   348,   349,   350,   351,   352,     0,   353,
     354,   355,   820,   356,   357,   358,   359,   600,   360,   821,
       0,   362,   363,   364,   365,   366,   367,   368,   369,   822,
     371,     0,   372,   373,     0,   374,   375,   376,   377,     0,
     823,   824,     0,     0,   380,   825,   382,   826,   827,   384,
     385,   386,   387,   388,     0,   828,   389,   390,   391,   392,
     829,     0,   393,   394,   395,   396,   830,   398,   601,   399,
     400,     0,     0,   401,   402,   403,   404,   405,   406,     0,
       0,     0,   831,   832,   509,   833,   834,   835,   836,   837,
       0,     0,     0,     0,   838,   839,     0,     0,     0,     0,
       0,     0,     0,   841,  1739,   161,   162,   163,   164,   165,
     166,   167,   168,     0,   169,   170,     0,     0,     0,     0,
       0,  2059,     0,   171,   172,     0,   173,     0,   174,   175,
     176,     0,   177,     0,   178,   179,     0,   180,   181,   182,
     183,   184,     0,     0,   185,   186,   187,   188,     0,   189,
     190,   191,   192,   193,     0,     0,   194,   195,   196,   197,
     198,     0,   199,   200,   201,   202,     0,   203,   204,   205,
    -962,   206,     0,     0,     0,     0,     0,   207,   208,   209,
     210,   211,   212,   213,   214,     0,   215,     0,   216,   217,
     218,   219,   220,     0,   221,     0,     0,   222,   223,   224,
     225,     0,   226,   227,   228,     0,   229,     0,   230,   231,
     232,   233,   234,   235,   236,     0,   237,   238,   239,     0,
     240,     0,   241,     0,     0,  -962,   242,   243,     0,   244,
     245,     0,   246,     0,   247,   248,   249,   250,     0,   251,
     252,   253,     0,   254,   255,   256,   257,   258,   259,     0,
    -962,   260,   261,   262,   263,   264,   265,   266,     0,   267,
       0,   268,     0,     0,   269,  -962,   270,   271,   272,   273,
     274,     0,   275,  -962,   276,     0,     0,   277,   278,   279,
       0,     0,   280,   281,   282,   283,   284,   285,   286,   287,
     288,   289,   290,   291,  -962,   292,     0,   293,   294,   295,
     296,   297,   298,   299,   300,   301,     0,   302,   303,     0,
     304,     0,   305,   306,   307,   308,     0,     0,   309,     0,
       0,     0,   310,   311,     0,     0,   312,     0,     0,   313,
     314,   315,   316,   317,     0,   318,   319,   320,   321,   322,
       0,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,  -962,   343,   344,   345,   346,   347,   348,
     349,   350,   351,   352,     0,   353,   354,   355,     0,   356,
     357,   358,   359,     0,   360,   361,     0,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,     0,   372,   373,
       0,   374,   375,   376,   377,     0,   378,   379,     0,     0,
     380,   381,   382,   383,     0,   384,   385,   386,   387,   388,
       0,     0,   389,   390,   391,   392,     0,     0,   393,   394,
     395,   396,   397,   398,     0,   399,   400,     0,     0,   401,
     402,   403,   404,   405,   406,     0,     0,     0,   407,     0,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
     906,   173,   582,   174,   175,   176,   583,  1109,   584,  1110,
    1111,     0,   180,   181,   182,   183,   184,     0,     0,   185,
    1112,  1113,   188,     0,   189,   190,   191,   192,     0,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,     0,
     202,     0,   203,   204,   205,   585,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,  1114,  1115,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   797,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,     0,   234,   235,     0,
       0,   237,   238,  1116,     0,   240,     0,   241,   586,     0,
     587,   242,   243,     0,   244,     0,     0,   246,     0,   247,
     248,   249,   250,   588,   251,   252,   253,  1457,   254,   255,
     256,   257,   258,   259,     0,   589,  1458,   261,   262,   263,
     264,  1117,  1118,     0,  1119,     0,   268,   590,   591,   269,
     592,   270,   271,   272,   273,   274,     0,     0,   593,   276,
     594,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,  1120,   595,
    1121,     0,   293,   294,   295,   296,   297,   298,   299,     0,
     301,     0,   302,   303,   596,   304,     0,     0,  1122,   307,
     308,     0,     0,   309,     0,     0,     0,   310,   311,     0,
       0,  1459,   597,   598,     0,   314,   315,   316,   317,     0,
       0,     0,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,  1123,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   599,   343,
     344,     0,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,  1460,   358,   359,   600,   360,
    1125,     0,   362,   363,   364,   365,   366,   367,   368,   369,
       0,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,  1126,  1127,     0,     0,   380,     0,   382,     0,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,     0,  1128,   398,   601,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,  1461,     0,   161,   162,   163,   164,   165,
     166,   167,   168,     0,   169,   170,     0,     0,     0,     0,
     780,     0,     0,   171,   172,  1462,   173,   582,   174,   175,
     176,   583,   781,   584,   782,   783,  1749,   180,   181,   182,
     183,   184,   784,   785,   185,   786,   787,   188,     0,   189,
     190,   191,   192,   788,     0,     0,   194,   195,   196,   197,
     198,     0,   199,   200,   789,   202,     0,   203,   204,   205,
     585,   206,   790,   791,   792,   793,   794,   207,   208,   209,
     210,   211,   795,   796,   214,     0,   215,     0,   216,   217,
     218,   219,   220,     0,   221,     0,     0,   222,   797,   224,
     225,     0,   226,   227,   228,     0,   229,     0,   230,   231,
     232,   798,   234,   235,   799,   800,   237,   238,   801,     0,
     240,     0,   241,   586,  1750,   587,   242,   243,     0,   244,
     802,     0,   246,     0,   247,   248,   249,   250,   588,   251,
     252,   253,     0,   254,   255,   256,   257,   258,   259,     0,
     589,   260,   261,   262,   263,   264,   803,   804,     0,   805,
       0,   268,   590,   591,   269,   592,   270,   271,   272,   273,
     274,  1751,   806,   593,   276,   594,     0,   277,   278,   279,
     807,   808,   280,   281,   282,   283,   284,   285,   286,   287,
     288,   289,   290,   809,   595,   810,   412,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   811,   302,   303,   596,
     304,   812,   813,   814,   307,   308,     0,     0,   309,   413,
       0,     0,   815,   311,     0,     0,   312,   597,   598,   816,
     314,   315,   316,   317,     0,   817,   319,   320,   321,   322,
       0,   323,   324,   325,   326,   327,   328,   818,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   599,   343,   344,   819,   346,   347,   348,
     349,   350,   351,   352,     0,   353,   354,   355,   820,   356,
     357,   358,   359,   600,   360,   821,     0,   362,   363,   364,
     365,   366,   367,   368,   369,   822,   371,     0,   372,   373,
       0,   374,   375,   376,   377,     0,   823,   824,     0,  1752,
     380,   825,   382,   826,   827,   384,   385,   386,   387,   388,
       0,   828,   389,   390,   391,   392,   829,     0,   393,   394,
     395,   396,   830,   398,   601,   399,   400,     0,     0,   401,
     402,   403,   404,   405,   406,     0,     0,     0,   831,   832,
     509,   833,   834,   835,   836,   837,     0,     0,     0,     0,
     838,   839,     0,     0,     0,     0,     0,     0,     0,   841,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,   780,     0,     0,   171,   172,
       0,   173,   582,   174,   175,   176,   583,   781,   584,   782,
     783,     0,   180,   181,   182,   183,   184,   784,   785,   185,
     786,   787,   188,     0,   189,   190,   191,   192,   788,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   789,
     202,     0,   203,   204,   205,   585,   206,   790,   791,   792,
     793,   794,   207,   208,   209,   210,   211,   795,   796,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   797,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   798,   234,   235,   799,
     800,   237,   238,   801,     0,   240,     0,   241,   586,     0,
     587,   242,   243,     0,   244,   802,     0,   246,     0,   247,
     248,   249,   250,   588,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,   589,   260,   261,   262,   263,
     264,   803,   804,     0,   805,     0,   268,   590,   591,   269,
     592,   270,   271,   272,   273,   274,     0,   806,   593,   276,
     594,     0,   277,   278,   279,   807,   808,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   809,   595,
     810,   412,   293,   294,   295,   296,   297,   298,   299,   300,
     301,   811,   302,   303,   596,   304,   812,   813,   814,   307,
     308,     0,     0,   309,   413,     0,     0,   815,   311,     0,
       0,   312,   597,   598,   816,   314,   315,   316,   317,     0,
     817,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   818,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   599,   343,
     344,   819,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,   820,   356,   357,   358,   359,   600,   360,
     821,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     822,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   823,   824,     0,     0,   380,   825,   382,   826,   827,
     384,   385,   386,   387,   388,     0,   828,   389,   390,   391,
     392,   829,     0,   393,   394,   395,   396,   830,   398,   601,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   831,   832,   509,   833,   834,   835,   836,
     837,     0,     0,     0,     0,   838,   839,   840,     0,     0,
       0,     0,     0,     0,   841,   161,   162,   163,   164,   165,
     166,   167,   168,     0,   169,   170,     0,     0,     0,     0,
     780,     0,     0,   171,   172,     0,   173,   582,   174,   175,
     176,   583,   781,   584,   782,   783,     0,   180,   181,   182,
     183,   184,   784,   785,   185,   786,   787,   188,     0,   189,
     190,   191,   192,   788,     0,     0,   194,   195,   196,   197,
     198,     0,   199,   200,   789,   202,     0,   203,   204,   205,
     585,   206,   790,   791,   792,   793,   794,   207,   208,   209,
     210,   211,   795,   796,   214,   902,   215,     0,   216,   217,
     218,   219,   220,     0,   221,     0,     0,   222,   797,   224,
     225,     0,   226,   227,   228,     0,   229,     0,   230,   231,
     232,   798,   234,   235,   799,   800,   237,   238,   801,     0,
     240,     0,   241,   586,     0,   587,   242,   243,     0,   244,
     802,     0,   246,     0,   247,   248,   249,   250,   588,   251,
     252,   253,     0,   254,   255,   256,   257,   258,   259,     0,
     589,   260,   261,   262,   263,   264,   803,   804,     0,   805,
       0,   268,   590,   591,   269,   592,   270,   271,   272,   273,
     274,     0,   806,   593,   276,   594,     0,   277,   278,   279,
     807,   808,   280,   281,   282,   283,   284,   285,   286,   287,
     288,   289,   290,   809,   595,   810,   412,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   811,   302,   303,   596,
     304,   812,   813,   814,   307,   308,     0,     0,   309,   413,
       0,     0,   815,   311,     0,     0,   312,   597,   598,   816,
     314,   315,   316,   317,     0,   817,   319,   320,   321,   322,
       0,   323,   324,   325,   326,   327,   328,   818,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   599,   343,   344,   819,   346,   347,   348,
     349,   350,   351,   352,     0,   353,   354,   355,   820,   356,
     357,   358,   359,   600,   360,   821,     0,   362,   363,   364,
     365,   366,   367,   368,   369,   822,   371,     0,   372,   373,
       0,   374,   375,   376,   377,     0,   823,   824,     0,     0,
     380,   825,   382,   826,   827,   384,   385,   386,   387,   388,
       0,   828,   389,   390,   391,   392,   829,     0,   393,   394,
     395,   396,   830,   398,   601,   399,   400,     0,     0,   401,
     402,   403,   404,   405,   406,     0,     0,     0,   831,   832,
     509,   833,   834,   835,   836,   837,     0,     0,     0,     0,
     838,   839,     0,     0,     0,     0,     0,     0,     0,   841,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,   780,     0,     0,   171,   172,
       0,   173,   582,   174,   175,   176,   583,   781,   584,   782,
     783,     0,   180,   181,   182,   183,   184,   784,   785,   185,
     786,   787,   188,     0,   189,   190,   191,   192,   788,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   789,
     202,     0,   203,   204,   205,   585,   206,   790,   791,   792,
     793,   794,   207,   208,   209,   210,   211,   795,   796,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   797,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   798,   234,   235,   799,
     800,   237,   238,   801,     0,   240,     0,   241,   586,     0,
     587,   242,   243,     0,   244,   802,     0,   246,     0,   247,
     248,   249,   250,   588,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,   589,   260,   261,   262,   263,
     264,   803,   804,     0,   805,     0,   268,   590,   591,   269,
     592,   270,   271,   272,   273,   274,     0,   806,   593,   276,
     594,     0,   277,   278,   279,   807,   808,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   809,   595,
     810,   412,   293,   294,   295,   296,   297,   298,   299,   300,
     301,   811,   302,   303,   596,   304,   812,   813,   814,   307,
     308,     0,     0,   309,   413,     0,     0,   815,   311,     0,
       0,   312,   597,   598,   816,   314,   315,   316,   317,     0,
     817,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   818,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   599,   343,
     344,   819,   346,   347,   348,   349,   350,   351,   352,    36,
     353,   354,   355,   820,   356,   357,   358,   359,   600,   360,
     821,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     822,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   823,   824,     0,     0,   380,   825,   382,   826,   827,
     384,   385,   386,   387,   388,     0,   828,   389,   390,   391,
     392,   829,     0,   393,   394,   395,  1307,   830,   398,   601,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   831,   832,   509,   833,   834,   835,   836,
     837,     0,     0,     0,     0,   838,   839,     0,     0,     0,
       0,     0,     0,     0,   841,   161,   162,   163,   164,   165,
     166,   167,   168,  1410,   169,   170,     0,     0,     0,     0,
     780,     0,     0,   171,   172,     0,   173,   582,   174,   175,
     176,   583,   781,   584,   782,   783,     0,   180,   181,   182,
     183,   184,   784,   785,   185,   786,   787,   188,     0,   189,
     190,   191,   192,   788,     0,     0,   194,   195,   196,   197,
     198,     0,   199,   200,   789,   202,     0,   203,   204,   205,
     585,   206,   790,   791,   792,   793,   794,   207,   208,   209,
     210,   211,   795,   796,   214,     0,   215,     0,   216,   217,
     218,   219,   220,     0,   221,     0,     0,   222,   797,   224,
     225,     0,   226,   227,   228,     0,   229,     0,   230,   231,
     232,   798,   234,   235,   799,   800,   237,   238,   801,     0,
     240,     0,   241,   586,     0,   587,   242,   243,     0,   244,
     802,     0,   246,     0,   247,   248,   249,   250,   588,   251,
     252,   253,     0,   254,   255,   256,   257,   258,   259,     0,
     589,   260,   261,   262,   263,   264,   803,   804,     0,   805,
       0,   268,   590,   591,   269,   592,   270,   271,   272,   273,
     274,     0,   806,   593,   276,   594,     0,   277,   278,   279,
     807,   808,   280,   281,   282,   283,   284,   285,   286,   287,
     288,   289,   290,   809,   595,   810,   412,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   811,   302,   303,   596,
     304,   812,   813,   814,   307,   308,     0,     0,   309,   413,
       0,     0,   815,   311,     0,     0,   312,   597,   598,   816,
     314,   315,   316,   317,     0,   817,   319,   320,   321,   322,
       0,   323,   324,   325,   326,   327,   328,   818,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   599,   343,   344,   819,   346,   347,   348,
     349,   350,   351,   352,     0,   353,   354,   355,   820,   356,
     357,   358,   359,   600,   360,   821,     0,   362,   363,   364,
     365,   366,   367,   368,   369,   822,   371,     0,   372,   373,
       0,   374,   375,   376,   377,     0,   823,   824,     0,     0,
     380,   825,   382,   826,   827,   384,   385,   386,   387,   388,
       0,   828,   389,   390,   391,   392,   829,     0,   393,   394,
     395,   396,   830,   398,   601,   399,   400,     0,     0,   401,
     402,   403,   404,   405,   406,     0,     0,     0,   831,   832,
     509,   833,   834,   835,   836,   837,     0,     0,     0,     0,
     838,   839,     0,     0,     0,     0,     0,     0,     0,   841,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,   780,     0,     0,   171,   172,
       0,   173,   582,   174,   175,   176,   583,   781,   584,   782,
     783,     0,   180,   181,   182,   183,   184,   784,   785,   185,
     786,   787,   188,     0,   189,   190,   191,   192,   788,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   789,
     202,     0,   203,   204,   205,   585,   206,   790,   791,   792,
     793,   794,   207,   208,   209,   210,   211,   795,   796,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   797,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   798,   234,   235,   799,
     800,   237,   238,   801,     0,   240,     0,   241,   586,     0,
     587,   242,   243,     0,   244,   802,     0,   246,     0,   247,
     248,   249,   250,   588,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,   589,   260,   261,   262,   263,
     264,   803,   804,     0,   805,     0,   268,   590,   591,   269,
     592,   270,   271,   272,   273,   274,     0,   806,   593,   276,
     594,     0,   277,   278,   279,   807,   808,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   809,   595,
     810,   412,   293,   294,   295,   296,   297,   298,   299,   300,
     301,   811,   302,   303,   596,   304,   812,   813,   814,   307,
     308,     0,     0,   309,   413,     0,     0,   815,   311,     0,
       0,   312,   597,   598,   816,   314,   315,   316,   317,     0,
     817,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   818,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   599,   343,
     344,   819,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,   820,   356,   357,   358,   359,   600,   360,
     821,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     822,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   823,   824,     0,     0,   380,   825,   382,   826,   827,
     384,   385,   386,   387,   388,     0,   828,   389,   390,   391,
     392,   829,     0,   393,   394,   395,   396,   830,   398,   601,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   831,   832,   509,   833,   834,   835,   836,
     837,     0,     0,     0,     0,   838,   839,     0,     0,     0,
       0,     0,  1257,     0,   841,   161,   162,   163,   164,   165,
     166,   167,   168,     0,   169,   170,     0,     0,     0,     0,
     780,     0,     0,   171,   172,     0,   173,   582,   174,   175,
     176,   583,   781,   584,   782,   783,     0,   180,   181,   182,
     183,   184,   784,   785,   185,   786,   787,   188,     0,   189,
     190,   191,   192,   788,     0,     0,   194,   195,   196,   197,
     198,     0,   199,   200,   789,   202,     0,   203,   204,   205,
     585,   206,   790,   791,   792,   793,   794,   207,   208,   209,
     210,   211,   795,   796,   214,     0,   215,     0,   216,   217,
     218,   219,   220,     0,   221,     0,     0,   222,   797,   224,
     225,     0,   226,   227,   228,     0,   229,     0,   230,   231,
     232,   798,   234,   235,   799,   800,   237,   238,   801,     0,
     240,     0,   241,   586,  1750,   587,   242,   243,     0,   244,
     802,     0,   246,     0,   247,   248,   249,   250,   588,   251,
     252,   253,     0,   254,   255,   256,   257,   258,   259,     0,
     589,   260,   261,   262,   263,   264,   803,   804,     0,   805,
       0,   268,   590,   591,   269,   592,   270,   271,   272,   273,
     274,     0,   806,   593,   276,   594,     0,   277,   278,   279,
     807,   808,   280,   281,   282,   283,   284,   285,   286,   287,
     288,   289,   290,   809,   595,   810,   412,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   811,   302,   303,   596,
     304,   812,   813,   814,   307,   308,     0,     0,   309,   413,
       0,     0,   815,   311,     0,     0,   312,   597,   598,   816,
     314,   315,   316,   317,     0,   817,   319,   320,   321,   322,
       0,   323,   324,   325,   326,   327,   328,   818,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   599,   343,   344,   819,   346,   347,   348,
     349,   350,   351,   352,     0,   353,   354,   355,   820,   356,
     357,   358,   359,   600,   360,   821,     0,   362,   363,   364,
     365,   366,   367,   368,   369,   822,   371,     0,   372,   373,
       0,   374,   375,   376,   377,     0,   823,   824,     0,     0,
     380,   825,   382,   826,   827,   384,   385,   386,   387,   388,
       0,   828,   389,   390,   391,   392,   829,     0,   393,   394,
     395,   396,   830,   398,   601,   399,   400,     0,     0,   401,
     402,   403,   404,   405,   406,     0,     0,     0,   831,   832,
     509,   833,   834,   835,   836,   837,     0,     0,     0,     0,
     838,   839,     0,     0,     0,     0,     0,     0,     0,   841,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,   780,     0,     0,   171,   172,
       0,   173,   582,   174,   175,   176,   583,   781,   584,   782,
     783,     0,   180,   181,   182,   183,   184,   784,   785,   185,
     786,   787,   188,     0,   189,   190,   191,   192,   788,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   789,
     202,     0,   203,   204,   205,   585,   206,   790,   791,   792,
     793,   794,   207,   208,   209,   210,   211,   795,   796,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   797,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   798,   234,   235,   799,
     800,   237,   238,   801,     0,   240,     0,   241,   586,     0,
     587,   242,   243,     0,   244,   802,     0,   246,     0,   247,
     248,   249,   250,   588,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,   589,   260,   261,   262,   263,
     264,   803,   804,     0,   805,     0,   268,   590,   591,   269,
     592,   270,   271,   272,   273,   274,     0,   806,   593,   276,
     594,     0,   277,   278,   279,   807,   808,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   809,   595,
     810,   412,   293,   294,   295,   296,   297,   298,   299,   300,
     301,   811,   302,   303,   596,   304,   812,   813,   814,   307,
     308,     0,     0,   309,   413,     0,     0,   815,   311,     0,
       0,   312,   597,   598,   816,   314,   315,   316,   317,     0,
     817,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   818,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   599,   343,
     344,   819,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,   820,   356,   357,   358,   359,   600,   360,
     821,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     822,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   823,   824,     0,     0,   380,   825,   382,   826,   827,
     384,   385,   386,   387,   388,     0,   828,   389,   390,   391,
     392,   829,     0,   393,   394,   395,   396,   830,   398,   601,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   831,   832,   509,   833,   834,   835,   836,
     837,     0,     0,     0,     0,   838,   839,     0,     0,     0,
       0,     0,     0,     0,   841,   161,   162,   163,   164,   165,
     166,   167,   168,     0,   169,   170,     0,     0,     0,     0,
     780,     0,     0,   171,   172,     0,   173,   582,   174,   175,
     176,   583,   781,   584,   782,   783,     0,   180,   181,   182,
     183,   184,   784,   785,   185,   786,   787,   188,     0,   189,
     190,   191,   192,   788,     0,     0,   194,   195,   196,   197,
     198,     0,   199,   200,   789,   202,     0,   203,   204,   205,
     585,   206,   790,   791,   792,   793,   794,   207,   208,   209,
     210,   211,   795,   796,   214,     0,   215,     0,   216,   217,
     218,   219,   220,     0,   221,     0,     0,   222,   797,   224,
     225,     0,   226,   227,   228,     0,   229,     0,   230,   231,
     232,   798,   234,   235,   799,   800,   237,   238,   801,     0,
     240,     0,   241,   586,     0,   587,   242,   243,     0,   244,
     802,     0,   246,     0,   247,   248,   249,   250,   588,   251,
     252,   253,     0,   254,   255,   256,   257,   258,   259,     0,
     589,   260,   261,   262,   263,   264,   803,   804,     0,   805,
       0,   268,   590,   591,   269,   592,   270,   271,   272,   273,
     274,     0,   806,   593,   276,   594,     0,   277,   278,   279,
     807,   808,   280,   281,   282,   283,   284,   285,   286,   287,
     288,   289,   290,   809,   595,   810,   412,   293,   294,   295,
     296,   297,   298,   299,   300,   301,     0,   302,   303,   596,
     304,   812,   813,   814,   307,   308,     0,     0,   309,   413,
       0,     0,   815,   311,     0,     0,   312,   597,   598,   816,
     314,   315,   316,   317,     0,   817,   319,   320,   321,   322,
       0,   323,   324,   325,   326,   327,   328,   818,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   599,   343,   344,   819,   346,   347,   348,
     349,   350,   351,   352,     0,   353,   354,   355,   820,   356,
     357,   358,   359,   600,   360,   821,     0,   362,   363,   364,
     365,   366,   367,   368,   369,   822,   371,     0,   372,   373,
       0,   374,   375,   376,   377,     0,   823,   824,     0,     0,
     380,   825,   382,   826,   827,   384,   385,   386,   387,   388,
       0,     0,   389,   390,   391,   392,   829,     0,   393,   394,
     395,   396,   830,   398,   601,   399,   400,     0,     0,   401,
     402,   403,   404,   405,   406,     0,     0,     0,   831,   832,
     509,   833,   834,   835,   836,   837,     0,     0,     0,     0,
    1732,  1733,     0,     0,     0,     0,     0,     0,     0,   841,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,   780,     0,     0,   171,   172,
       0,   173,   582,   174,   175,   176,     0,   781,   584,   782,
     783,     0,   180,   181,   182,   183,   184,   784,   785,   185,
     786,   787,   188,     0,   189,   190,   191,   192,   788,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   789,
     202,     0,   203,   204,   205,   585,   206,   790,   791,   792,
     793,   794,   207,   208,   209,   210,   211,   795,   796,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   797,   224,   225,     0,   226,   227,   228,
       0,     0,     0,   230,   231,   232,   798,   234,   235,   799,
     800,   237,   238,   801,     0,   240,     0,   241,   586,     0,
     587,   242,   243,     0,   244,   802,     0,   246,     0,   247,
     248,   249,   250,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,   589,   260,   261,   262,   263,
     264,   803,   804,     0,   805,     0,   268,   590,   591,   269,
     592,   270,   271,   272,   273,   274,     0,   806,   593,   276,
       0,     0,   277,   278,   279,   807,   808,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   809,   595,
     810,   412,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,   596,   304,   812,   813,   814,   307,
     308,     0,     0,   309,   413,     0,     0,   815,   311,     0,
       0,   312,   597,   598,   816,   314,   315,   316,   317,     0,
     817,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   818,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   599,   343,
     344,   819,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,   820,   356,   357,   358,   359,     0,   360,
     821,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     822,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   823,   824,     0,     0,   380,   825,   382,   826,   827,
     384,   385,   386,   387,   388,     0,   828,   389,   390,   391,
     392,   829,     0,   393,   394,   395,   396,   830,   398,   601,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   831,   832,   509,   833,   834,   835,   836,
     837,     0,     0,     0,     0,   838,   839,     0,     0,     0,
       0,     0,     0,     0,   841,   161,   162,   163,   164,   165,
     166,   167,   168,     0,   169,   170,     0,     0,     0,     0,
     780,     0,     0,   171,   172,     0,   173,   582,   174,   175,
     176,     0,   781,   584,   782,   783,     0,   180,   181,   182,
     183,   184,   784,   785,   185,   786,   787,   188,     0,   189,
     190,   191,   192,   788,     0,     0,   194,   195,   196,   197,
     198,     0,   199,   200,   789,   202,     0,   203,   204,   205,
     585,   206,   790,   791,   792,   793,   794,   207,   208,   209,
     210,   211,   795,   796,   214,     0,   215,     0,   216,   217,
     218,   219,   220,     0,   221,     0,     0,   222,   797,   224,
     225,     0,   226,   227,   228,     0,     0,     0,   230,   231,
     232,   798,   234,   235,   799,   800,   237,   238,   801,     0,
     240,     0,   241,   586,     0,   587,   242,   243,     0,   244,
     802,     0,   246,     0,   247,   248,   249,   250,     0,   251,
     252,   253,     0,   254,   255,   256,   257,   258,   259,     0,
     589,   260,   261,   262,   263,   264,   803,   804,     0,   805,
       0,   268,   590,   591,   269,   592,   270,   271,   272,   273,
     274,     0,   806,   593,   276,     0,     0,   277,   278,   279,
     807,   808,   280,   281,   282,   283,   284,   285,   286,   287,
     288,   289,   290,   809,   595,   810,   412,   293,   294,   295,
     296,   297,   298,   299,   300,   301,     0,   302,   303,   596,
     304,   812,   813,   814,   307,   308,     0,     0,   309,   413,
       0,     0,   815,   311,     0,     0,   312,   597,   598,   816,
     314,   315,   316,   317,     0,   817,   319,   320,   321,   322,
       0,   323,   324,   325,   326,   327,   328,   818,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   599,   343,   344,   819,   346,   347,   348,
     349,   350,   351,   352,     0,   353,   354,   355,   820,   356,
     357,   358,   359,     0,   360,   821,     0,   362,   363,   364,
     365,   366,   367,   368,   369,   822,   371,     0,   372,   373,
       0,   374,   375,   376,   377,     0,   823,   824,     0,     0,
     380,   825,   382,   826,   827,   384,   385,   386,   387,   388,
       0,     0,   389,   390,   391,   392,   829,     0,   393,   394,
     395,   396,   830,   398,   601,   399,   400,     0,     0,   401,
     402,   403,   404,   405,   406,     0,     0,     0,   831,   832,
     509,   833,   834,   835,   836,   837,     0,     0,     0,     0,
    1732,  1733,     0,     0,     0,     0,     0,     0,     0,   841,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
       0,   173,   582,   174,   175,   176,   583,   177,   584,   178,
     179,     0,   180,   181,   182,   183,   184,     0,   785,   185,
     186,   187,   188,     0,   189,   190,   191,   192,   788,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   789,
     202,     0,   203,   204,   205,   585,   206,   790,   791,   792,
     793,   794,   207,   208,   209,   210,   211,   212,   213,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   799,
       0,   237,   238,   239,     0,   240,     0,   241,   586,     0,
     587,   242,   243,     0,   244,   802,     0,   246,     0,   247,
     248,   249,   250,   588,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,   589,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,   590,   591,   269,
     592,   270,   271,   272,   273,   274,     0,   806,   593,   276,
     594,     0,   277,   278,   279,   807,   808,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,   595,
     292,   412,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,   596,   304,     0,   813,   306,   307,
     308,     0,     0,   309,   413,     0,   561,   310,   311,     0,
       0,   312,   597,   598,   816,   314,   315,   316,   317,     0,
     817,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   599,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,    36,
     353,   354,   355,   820,   356,   357,   358,   359,   600,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     822,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   378,   379,     0,     0,   380,   825,   382,   826,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,   829,     0,   393,   394,   395,  1307,   397,   398,   601,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   602,   161,   162,   163,   164,   165,   166,
     167,   168,     0,   169,   170,     0,     0,     0,     0,     0,
       0,     0,   171,   172,  1616,   173,   582,   174,   175,   176,
     583,   177,   584,   178,   179,     0,   180,   181,   182,   183,
     184,     0,   785,   185,   186,   187,   188,     0,   189,   190,
     191,   192,   788,     0,     0,   194,   195,   196,   197,   198,
       0,   199,   200,   789,   202,     0,   203,   204,   205,   585,
     206,   790,   791,   792,   793,   794,   207,   208,   209,   210,
     211,   212,   213,   214,     0,   215,     0,   216,   217,   218,
     219,   220,     0,   221,     0,     0,   222,   223,   224,   225,
       0,   226,   227,   228,     0,   229,     0,   230,   231,   232,
     233,   234,   235,   799,     0,   237,   238,   239,     0,   240,
       0,   241,   586,     0,   587,   242,   243,     0,   244,   802,
       0,   246,     0,   247,   248,   249,   250,   588,   251,   252,
     253,     0,   254,   255,   256,   257,   258,   259,     0,   589,
     260,   261,   262,   263,   264,   265,   266,     0,   267,     0,
     268,   590,   591,   269,   592,   270,   271,   272,   273,   274,
       0,   806,   593,   276,   594,     0,   277,   278,   279,   807,
     808,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   595,   292,   412,   293,   294,   295,   296,
     297,   298,   299,   300,   301,     0,   302,   303,   596,   304,
       0,   813,   306,   307,   308,     0,     0,   309,   413,     0,
     561,   310,   311,     0,     0,   312,   597,   598,   816,   314,
     315,   316,   317,     0,   817,   319,   320,   321,   322,     0,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,   599,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   352,     0,   353,   354,   355,   820,   356,   357,
     358,   359,   600,   360,   361,     0,   362,   363,   364,   365,
     366,   367,   368,   369,   822,   371,     0,   372,   373,     0,
     374,   375,   376,   377,     0,   378,   379,     0,     0,   380,
     825,   382,   826,     0,   384,   385,   386,   387,   388,     0,
       0,   389,   390,   391,   392,   829,     0,   393,   394,   395,
     396,   397,   398,   601,   399,   400,     0,     0,   401,   402,
     403,   404,   405,   406,     0,     0,     0,   602,   161,   162,
     163,   164,   165,   166,   167,   168,     0,   169,   170,     0,
       0,     0,     0,     0,     0,     0,   171,   172,  1616,   173,
     582,   174,   175,   176,   583,   177,   584,   178,   179,     0,
     180,   181,   182,   183,   184,     0,   785,   185,   186,   187,
     188,     0,   189,   190,   191,   192,   788,     0,     0,   194,
     195,   196,   197,   198,     0,   199,   200,   789,   202,     0,
     203,   204,   205,   585,   206,   790,   791,   792,   793,   794,
     207,   208,   209,   210,   211,   212,   213,   214,     0,   215,
       0,   216,   217,   218,   219,   220,     0,   221,     0,     0,
     222,   223,   224,   225,     0,   226,   227,   228,     0,   229,
       0,   230,   231,   232,   233,   234,   235,   799,     0,   237,
     238,   239,     0,   240,     0,   241,   586,     0,   587,   242,
     243,     0,   244,   802,     0,   246,     0,   247,   248,   249,
     250,   588,   251,   252,   253,     0,   254,   255,   256,   257,
     258,   259,     0,   589,   260,   261,   262,   263,   264,   265,
     266,     0,   267,     0,   268,   590,   591,   269,   592,   270,
     271,   272,   273,   274,     0,   806,   593,   276,   594,     0,
     277,   278,   279,   807,   808,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   595,   292,   412,
     293,   294,   295,   296,   297,   298,   299,   300,   301,     0,
     302,   303,   596,   304,     0,   813,   306,   307,   308,     0,
       0,   309,   413,     0,     0,   310,   311,     0,     0,   312,
     597,   598,   816,   314,   315,   316,   317,     0,   817,   319,
     320,   321,   322,     0,   323,   324,   325,   326,   327,   328,
     329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
     338,   339,   340,     0,   341,   342,   599,   343,   344,   345,
     346,   347,   348,   349,   350,   351,   352,     0,   353,   354,
     355,   820,   356,   357,   358,   359,   600,   360,   361,     0,
     362,   363,   364,   365,   366,   367,   368,   369,   822,   371,
       0,   372,   373,     0,   374,   375,   376,   377,     0,   378,
     379,     0,     0,   380,   825,   382,   826,     0,   384,   385,
     386,   387,   388,     0,     0,   389,   390,   391,   392,   829,
       0,   393,   394,   395,   396,   397,   398,   601,   399,   400,
       0,     0,   401,   402,   403,   404,   405,   406,     0,     0,
       0,   602,   161,   162,   163,   164,   165,   166,   167,   168,
       0,   169,   170,     0,     0,     0,     0,     0,     0,     0,
     171,   172,  2765,   173,     0,   174,   175,   176,     0,   177,
       0,   178,   179,     0,   180,   181,   182,   183,   184,     0,
       0,   185,   186,   187,   188,     0,   189,   190,   191,   192,
     193,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,   201,   202,     0,   203,   204,   205,     0,   206,     0,
       0,     0,     0,     0,   207,   208,   209,   210,   211,   212,
     213,   214,     0,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   223,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,   233,   234,
     235,   236,     0,   237,   238,   239,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,   244,   245,     0,   246,
       0,   247,   248,   249,   250,     0,   251,   252,   253,     0,
     254,   255,   256,   257,   258,   259,     0,     0,   260,   261,
     262,   263,   264,   265,   266,     0,   267,     0,   268,     0,
       0,   269,     0,   270,   271,   272,   273,   274,     0,   275,
       0,   276,     0,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,     0,   292,   412,   293,   294,   295,   296,   297,   298,
     299,   300,   301,     0,   302,   303,     0,   304,     0,   305,
     306,   307,   308,     0,     0,   309,   413,     0,     0,   310,
     311,     0,     0,   312,     0,     0,   313,   314,   315,   316,
     317,     0,   318,   319,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,   329,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,   343,   344,   345,   346,   347,   348,   349,   350,   351,
     352,     0,   353,   354,   355,     0,   356,   357,   358,   359,
       0,   360,   361,     0,   362,   363,   364,   365,   366,   367,
     368,   369,   370,   371,     0,   372,   373,     0,   374,   375,
     376,   377,     0,   378,   379,     0,     0,   380,   381,   382,
     383,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,     0,     0,   393,   394,   395,   396,   397,
     398,     0,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,   407,   161,   162,   163,   164,
     165,   166,   167,   168,     0,   169,   170,     0,     0,     0,
       0,     0,     0,     0,   171,   172,   894,   173,     0,   174,
     175,   176,     0,   177,     0,   178,   179,     0,   180,   181,
     182,   183,   184,     0,     0,   185,   186,   187,   188,     0,
     189,   190,   191,   192,   193,     0,     0,   194,   195,   196,
     197,   198,     0,   199,   200,   201,   202,     0,   203,   204,
     205,     0,   206,     0,     0,     0,     0,     0,   207,   208,
     209,   210,   211,   212,   213,   214,     0,   215,     0,   216,
     217,   218,   219,   220,     0,   221,     0,     0,   222,   223,
     224,   225,     0,   226,   227,   228,     0,   229,     0,   230,
     231,   232,   233,   234,   235,   236,     0,   237,   238,   239,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
     244,   245,     0,   246,     0,   247,   248,   249,   250,     0,
     251,   252,   253,     0,   254,   255,   256,   257,   258,   259,
       0,     0,   260,   261,   262,   263,   264,   265,   266,     0,
     267,     0,   268,     0,     0,   269,     0,   270,   271,   272,
     273,   274,     0,   275,     0,   276,     0,     0,   277,   278,
     279,     0,     0,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,     0,   292,     0,   293,   294,
     295,   296,   297,   298,   299,   300,   301,     0,   302,   303,
       0,   304,     0,   305,   306,   307,   308,     0,     0,   309,
       0,     0,     0,   310,   311,     0,     0,   312,     0,     0,
     313,   314,   315,   316,   317,     0,   318,   319,   320,   321,
     322,     0,   323,   324,   325,   326,   327,   328,   329,   330,
     331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,   343,   344,   345,   346,   347,
     348,   349,   350,   351,   352,    36,   353,   354,   355,     0,
     356,   357,   358,   359,     0,   360,   361,     0,   362,   363,
     364,   365,   366,   367,   368,   369,   370,   371,     0,   372,
     373,     0,   374,   375,   376,   377,     0,   378,   379,     0,
       0,   380,   381,   382,   383,     0,   384,   385,   386,   387,
     388,     0,     0,   389,   390,   391,   392,     0,     0,   393,
     394,   395,  1307,   397,   398,     0,   399,   400,     0,     0,
     401,   402,   403,   404,   405,   406,     0,     0,     0,   407,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
      45,   173,     0,   174,   175,   176,     0,   177,     0,   178,
     179,     0,   180,   181,   182,   183,   184,     0,     0,   185,
     186,   187,   188,     0,   189,   190,   191,   192,   193,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   201,
     202,     0,   203,   204,   205,     0,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,   212,   213,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   236,
       0,   237,   238,   239,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,   244,   245,     0,   246,     0,   247,
     248,   249,   250,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,     0,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,     0,     0,   269,
       0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
       0,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,     0,
     292,     0,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,     0,   304,     0,   305,   306,   307,
     308,     0,     0,   309,     0,     0,     0,   310,   311,     0,
       0,   312,     0,     0,   313,   314,   315,   316,   317,     0,
     318,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,   357,   358,   359,     0,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     370,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   378,   379,     0,     0,   380,   381,   382,   383,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,   396,   397,   398,     0,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   407,   161,   162,   163,   164,   165,   166,
     167,   168,     0,   169,   170,     0,     0,     0,     0,     0,
       0,     0,   171,   172,  1387,   173,     0,   174,   175,   176,
       0,   177,     0,   178,   179,     0,   180,   181,   182,   183,
     184,     0,     0,   185,   186,   187,   188,     0,   189,   190,
     191,   192,   193,     0,     0,   194,   195,   196,   197,   198,
       0,   199,   200,   201,   202,     0,   203,   204,   205,     0,
     206,     0,     0,     0,     0,     0,   207,   208,   209,   210,
     211,   212,   213,   214,     0,   215,     0,   216,   217,   218,
     219,   220,     0,   221,     0,     0,   222,   223,   224,   225,
       0,   226,   227,   228,     0,   229,     0,   230,   231,   232,
     233,   234,   235,   236,     0,   237,   238,   239,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,   244,   245,
       0,   246,     0,   247,   248,   249,   250,     0,   251,   252,
     253,     0,   254,   255,   256,   257,   258,   259,     0,     0,
     260,   261,   262,   263,   264,   265,   266,     0,   267,     0,
     268,     0,     0,   269,     0,   270,   271,   272,   273,   274,
       0,   275,     0,   276,     0,     0,   277,   278,   279,     0,
       0,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,     0,   292,     0,   293,   294,   295,   296,
     297,   298,   299,   300,   301,     0,   302,   303,     0,   304,
       0,   305,   306,   307,   308,     0,     0,   309,     0,     0,
       0,   310,   311,     0,     0,   312,     0,     0,   313,   314,
     315,   316,   317,     0,   318,   319,   320,   321,   322,     0,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   352,     0,   353,   354,   355,     0,   356,   357,
     358,   359,     0,   360,   361,     0,   362,   363,   364,   365,
     366,   367,   368,   369,   370,   371,     0,   372,   373,     0,
     374,   375,   376,   377,     0,   378,   379,     0,     0,   380,
     381,   382,   383,     0,   384,   385,   386,   387,   388,     0,
       0,   389,   390,   391,   392,     0,     0,   393,   394,   395,
     396,   397,   398,     0,   399,   400,     0,     0,   401,   402,
     403,   404,   405,   406,     0,     0,     0,   407,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  2420,   161,
     162,   163,   164,   165,   166,   167,   168,  1004,   169,   170,
    1005,  1006,  1007,  1008,  1009,  1010,  1011,   171,   172,  1012,
     173,   582,   174,   175,   176,   583,  1109,   584,  1110,  1111,
    1013,   180,   181,   182,   183,   184,  1014,  1015,   185,  1112,
    1113,   188,  1016,   189,   190,   191,   192,     0,  1017,  1018,
     194,   195,   196,   197,   198,  1019,   199,   200,     0,   202,
    1020,   203,   204,   205,   585,   206,  1021,  1022,  1023,  1024,
    1025,   207,   208,   209,   210,   211,  1114,  1115,   214,  1026,
     215,  1027,   216,   217,   218,   219,   220,  1028,   221,  1029,
    1030,   222,   797,   224,   225,  1031,   226,   227,   228,  1032,
     229,  1033,   230,   231,   232,     0,   234,   235,     0,  1034,
     237,   238,  1116,  1035,   240,  1036,   241,   586,  1037,   587,
     242,   243,  1038,   244,     0,  1039,   246,  1040,   247,   248,
     249,   250,   588,   251,   252,   253,  1041,   254,   255,   256,
     257,   258,   259,  1042,   589,     0,   261,   262,   263,   264,
    1117,  1118,  1043,  1119,  1044,   268,   590,   591,   269,   592,
     270,   271,   272,   273,   274,  1045,     0,   593,   276,   594,
    1046,   277,   278,   279,  1047,  1048,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,  1120,   595,  1121,
    1049,   293,   294,   295,   296,   297,   298,   299,     0,   301,
    1050,   302,   303,   596,   304,  1051,     0,  1122,   307,   308,
    1052,  1053,   309,  1054,  1055,  1056,  2322,   311,  1057,  1058,
       0,   597,   598,     0,   314,   315,   316,   317,  1059,     0,
       0,   320,   321,   322,  1060,   323,   324,   325,   326,   327,
     328,  1123,   330,   331,  1061,   332,   333,   334,   335,   336,
     337,   338,   339,   340,  1062,   341,   342,   599,   343,   344,
       0,   346,   347,   348,   349,   350,   351,   352,  1063,   353,
     354,   355,  1064,   356,  1460,   358,   359,   600,   360,  1125,
    1065,   362,   363,   364,   365,   366,   367,   368,   369,     0,
     371,  1066,   372,   373,  1067,   374,   375,   376,   377,  1068,
    1126,  1127,  1069,  1070,   380,     0,   382,     0,  1071,   384,
     385,   386,   387,   388,  1072,  1073,   389,   390,   391,   392,
    1074,  1075,   393,   394,   395,     0,  1128,   398,   601,   399,
     400,  1076,  1077,   401,   402,   403,   404,   405,   406,     0,
       0,     0,  1129,  1362,   509,     0,     0,   620,   493,     0,
     621,   622,   623,     0,   624,  2323,   626,   627,   628,   629,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
       0,   173,     0,   174,   175,   176,     0,   177,     0,   178,
     179,     0,   180,   181,   182,   183,   184,     0,     0,   185,
     186,   187,   188,     0,   189,   619,   191,   192,   193,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   201,
     202,     0,   203,   204,   205,     0,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,   212,   213,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   236,
       0,   237,   238,   239,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,   244,   245,     0,   246,     0,   247,
     248,   249,   250,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,     0,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,     0,     0,   269,
       0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
       0,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,     0,
     292,     0,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,     0,   304,     0,   305,   306,   307,
     308,     0,     0,   309,     0,     0,     0,   310,   311,     0,
       0,   312,     0,     0,   313,   314,   315,   316,   317,     0,
     318,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,   357,   358,   359,     0,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     370,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   378,   379,     0,     0,   380,   381,   382,   383,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,   396,   397,   398,     0,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   407,     0,     0,     0,     0,   620,     0,
       0,   621,   622,   623,     0,   624,   625,   626,   627,   628,
     629,   161,   162,   163,   164,   165,   166,   167,   168,     0,
     169,   170,     0,     0,     0,     0,     0,     0,     0,   171,
     172,     0,   173,     0,   174,   175,   176,     0,   177,     0,
     178,   179,     0,   180,   181,   182,   183,   184,     0,     0,
     185,   186,   187,   188,     0,   189,   689,   191,   192,   193,
       0,     0,   194,   195,   196,   197,   198,     0,   199,   200,
     201,   202,     0,   203,   204,   205,     0,   206,     0,     0,
       0,     0,     0,   207,   208,   209,   210,   211,   212,   213,
     214,     0,   215,     0,   216,   217,   218,   219,   220,     0,
     221,     0,     0,   222,   223,   224,   225,     0,   226,   227,
     228,     0,   229,     0,   230,   231,   232,   233,   234,   235,
     236,     0,   237,   238,   239,     0,   240,     0,   241,     0,
       0,     0,   242,   243,     0,   244,   245,     0,   246,     0,
     247,   248,   249,   250,     0,   251,   252,   253,     0,   254,
     255,   256,   257,   258,   259,     0,     0,   260,   261,   262,
     263,   264,   265,   266,     0,   267,     0,   268,     0,     0,
     269,     0,   270,   271,   272,   273,   274,     0,   275,     0,
     276,     0,     0,   277,   278,   279,     0,     0,   280,   281,
     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
       0,   292,     0,   293,   294,   295,   296,   297,   298,   299,
     300,   301,     0,   302,   303,     0,   304,     0,   305,   306,
     307,   308,     0,     0,   309,     0,     0,     0,   310,   311,
       0,     0,   312,     0,     0,   313,   314,   315,   316,   317,
       0,   318,   319,   320,   321,   322,     0,   323,   324,   325,
     326,   327,   328,   329,   330,   331,     0,   332,   333,   334,
     335,   336,   337,   338,   339,   340,     0,   341,   342,     0,
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
       0,   353,   354,   355,     0,   356,   357,   358,   359,     0,
     360,   361,     0,   362,   363,   364,   365,   366,   367,   368,
     369,   370,   371,     0,   372,   373,     0,   374,   375,   376,
     377,     0,   378,   379,     0,     0,   380,   381,   382,   383,
       0,   384,   385,   386,   387,   388,     0,     0,   389,   390,
     391,   392,     0,     0,   393,   394,   395,   396,   397,   398,
       0,   399,   400,     0,     0,   401,   402,   403,   404,   405,
     406,     0,     0,     0,   407,     0,     0,     0,     0,   620,
       0,     0,   621,   622,   623,     0,   624,   625,   626,   627,
     628,   629,   161,   162,   163,   164,   165,   166,   167,   168,
       0,   169,   170,     0,     0,     0,     0,     0,     0,     0,
     171,   172,     0,   173,     0,   174,   175,   176,     0,   177,
       0,   178,   179,     0,   180,   181,   182,   183,   184,     0,
       0,   185,   186,   187,   188,     0,   189,   722,   191,   192,
     193,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,   201,   202,     0,   203,   204,   205,     0,   206,     0,
       0,     0,     0,     0,   207,   208,   209,   210,   211,   212,
     213,   214,     0,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   223,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,   233,   234,
     235,   236,     0,   237,   238,   239,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,   244,   245,     0,   246,
       0,   247,   248,   249,   723,     0,   251,   252,   253,     0,
     254,   255,   256,   257,   258,   259,     0,     0,   260,   261,
     262,   263,   264,   265,   266,     0,   267,     0,   268,     0,
       0,   269,     0,   270,   271,   272,   273,   274,     0,   275,
       0,   276,     0,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,     0,   292,     0,   293,   294,   295,   296,   297,   298,
     299,   300,   301,     0,   302,   303,     0,   304,     0,   305,
     306,   307,   308,     0,     0,   309,     0,     0,     0,   310,
     311,     0,     0,   312,     0,     0,   313,   314,   315,   316,
     317,     0,   318,   319,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,   329,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,   343,   344,   345,   346,   347,   348,   349,   350,   351,
     352,     0,   353,   354,   355,     0,   356,   357,   358,   359,
       0,   360,   361,     0,   362,   363,   364,   365,   366,   367,
     368,   369,   370,   371,     0,   372,   373,     0,   374,   375,
     376,   377,     0,   378,   379,     0,     0,   380,   381,   382,
     383,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,     0,     0,   393,   394,   395,   396,   397,
     398,     0,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,   407,     0,     0,     0,     0,
     620,     0,     0,   621,   622,   623,     0,   624,   625,   626,
     627,   628,   629,   161,   162,   163,   164,   165,   166,   167,
     168,     0,   169,   170,     0,     0,     0,     0,     0,     0,
       0,   171,   172,     0,   173,     0,   174,   175,   176,     0,
     177,     0,   178,   179,     0,   180,   181,   182,   183,   184,
       0,     0,   185,   186,   187,   188,     0,   189,  1093,   191,
     192,   193,     0,     0,   194,   195,   196,   197,   198,     0,
     199,   200,   201,   202,     0,   203,   204,   205,     0,   206,
       0,     0,     0,     0,     0,   207,   208,   209,   210,   211,
     212,   213,   214,     0,   215,     0,   216,   217,   218,   219,
     220,     0,   221,     0,     0,   222,   223,   224,   225,     0,
     226,   227,   228,     0,   229,     0,   230,   231,   232,   233,
     234,   235,   236,     0,   237,   238,   239,     0,   240,     0,
     241,     0,     0,     0,   242,   243,     0,   244,   245,     0,
     246,     0,   247,   248,   249,   250,     0,   251,   252,   253,
       0,   254,   255,   256,   257,   258,   259,     0,     0,   260,
     261,   262,   263,   264,   265,   266,     0,   267,     0,   268,
       0,     0,   269,     0,   270,   271,   272,   273,   274,     0,
     275,     0,   276,     0,     0,   277,   278,   279,     0,     0,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,   291,     0,   292,     0,   293,   294,   295,   296,   297,
     298,   299,   300,   301,     0,   302,   303,     0,   304,     0,
     305,   306,   307,   308,     0,     0,   309,     0,     0,     0,
     310,   311,     0,     0,   312,     0,     0,   313,   314,   315,
     316,   317,     0,   318,   319,   320,   321,   322,     0,   323,
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
     333,   334,   335,   336,   337,   338,   339,   340,     0,   341,
     342,     0,   343,   344,   345,   346,   347,   348,   349,   350,
     351,   352,     0,   353,   354,   355,     0,   356,   357,   358,
     359,     0,   360,   361,     0,   362,   363,   364,   365,   366,
     367,   368,   369,   370,   371,     0,   372,   373,     0,   374,
     375,   376,   377,     0,   378,   379,     0,     0,   380,   381,
     382,   383,     0,   384,   385,   386,   387,   388,     0,     0,
     389,   390,   391,   392,     0,     0,   393,   394,   395,   396,
     397,   398,     0,   399,   400,     0,     0,   401,   402,   403,
     404,   405,   406,     0,     0,     0,   407,     0,     0,     0,
       0,   620,     0,     0,   621,   622,   623,     0,   624,   625,
     626,   627,   628,   629,   161,   162,   163,   164,   165,   166,
     167,   168,     0,   169,   170,     0,     0,     0,     0,     0,
       0,     0,   171,   172,     0,   173,     0,   174,   175,   176,
       0,   177,     0,   178,   179,     0,   180,   181,   182,   183,
     184,     0,     0,   185,   186,   187,   188,     0,   189,   190,
     191,   192,   193,     0,     0,   194,   195,   196,   197,   198,
       0,   199,   200,   201,   202,     0,   203,   204,   205,     0,
     206,     0,     0,     0,     0,     0,   207,   208,   209,   210,
     211,   212,   213,   214,     0,   215,     0,   216,   217,   218,
     219,   220,     0,   221,     0,     0,   222,   223,   224,   225,
       0,   226,   227,   228,     0,   229,     0,   230,   231,   232,
     233,   234,   235,   236,     0,   237,   238,   239,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,   244,   245,
       0,   246,     0,   247,   248,   249,   250,     0,   251,   252,
     253,     0,   254,   255,   256,   257,   258,   259,     0,     0,
     260,   261,   262,   263,   264,   265,   266,     0,   267,     0,
     268,     0,     0,   269,     0,   270,   271,   272,   273,   274,
       0,   275,     0,   276,     0,     0,   277,   278,   279,     0,
       0,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,     0,   292,     0,   293,   294,   295,   296,
     297,   298,   299,   300,   301,     0,   302,   303,     0,   304,
       0,   305,   306,   307,   308,     0,     0,   309,     0,     0,
       0,   310,   311,     0,     0,   312,     0,     0,   313,   314,
     315,   316,   317,     0,   318,   319,   320,   321,   322,     0,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   352,     0,   353,   354,   355,     0,   356,   357,
     358,   359,     0,   360,   361,     0,   362,   363,   364,   365,
     366,   367,   368,   369,   370,   371,     0,   372,   373,     0,
     374,   375,   376,   377,     0,   378,   379,     0,     0,   380,
     381,   382,   383,     0,   384,   385,   386,   387,   388,     0,
       0,   389,   390,   391,   392,     0,     0,   393,   394,   395,
     396,   397,   398,     0,   399,   400,     0,     0,   401,   402,
     403,   404,   405,   406,     0,     0,     0,   407,     0,     0,
       0,     0,   620,     0,     0,   621,   622,   623,     0,   624,
     625,   626,   627,   628,   629,   161,   162,   163,   164,   165,
     166,   167,   168,  1004,   169,   170,  1005,  1006,  1007,  1008,
    1009,  1010,  1011,   171,   172,  1012,   173,   582,   174,   175,
     176,   583,   177,   584,   178,   179,  1013,   180,   181,   182,
     183,   184,  1014,  1015,   185,   186,   187,   188,  1016,   189,
     190,   191,   192,   193,  1017,  1018,   194,   195,   196,   197,
     198,  1019,   199,   200,   201,   202,  1020,   203,   204,   205,
     585,   206,  1021,  1022,  1023,  1024,  1025,   207,   208,   209,
     210,   211,   212,   213,   214,  1026,   215,  1027,   216,   217,
     218,   219,   220,  1028,   221,  1029,  1030,   222,   223,   224,
     225,  1031,   226,   227,   228,  1032,   229,  1033,   230,   231,
     232,   233,   234,   235,   236,  1034,   237,   238,   239,  1035,
     240,  1036,   241,   586,  1037,   587,   242,   243,  1038,   244,
     245,  1039,   246,  1040,   247,   248,   249,   250,   588,   251,
     252,   253,  1041,   254,   255,   256,   257,   258,   259,  1042,
     589,   260,   261,   262,   263,   264,   265,   266,  1043,   267,
    1044,   268,   590,   591,   269,   592,   270,   271,   272,   273,
     274,  1045,   275,   593,   276,   594,  1046,   277,   278,   279,
    1047,  1048,   280,   281,   282,   283,   284,   285,   286,   287,
     288,   289,   290,   291,   595,   292,  1049,   293,   294,   295,
     296,   297,   298,   299,   300,   301,  1050,   302,   303,   596,
     304,  1051,   305,   306,   307,   308,  1052,  1053,   309,  1054,
    1055,  1056,   310,   311,  1057,  1058,   312,   597,   598,   313,
     314,   315,   316,   317,  1059,   318,   319,   320,   321,   322,
    1060,   323,   324,   325,   326,   327,   328,   329,   330,   331,
    1061,   332,   333,   334,   335,   336,   337,   338,   339,   340,
    1062,   341,   342,   599,   343,   344,   345,   346,   347,   348,
     349,   350,   351,   352,  1063,   353,   354,   355,  1064,   356,
     357,   358,   359,   600,   360,   361,  1065,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,  1066,   372,   373,
    1067,   374,   375,   376,   377,  1068,   378,   379,  1069,  1070,
     380,   381,   382,   383,  1071,   384,   385,   386,   387,   388,
    1072,  1073,   389,   390,   391,   392,  1074,  1075,   393,   394,
     395,   396,   397,   398,   601,   399,   400,  1076,  1077,   401,
     402,   403,   404,   405,   406,     0,     0,     0,  1078,   161,
     162,   163,   164,   165,   166,   167,   168,     0,   169,   170,
       0,     0,  1079,     0,     0,     0,     0,   171,   172,     0,
     173,     0,   174,   175,   176,     0,   177,     0,   178,   179,
       0,   180,   181,   182,   183,   184,     0,     0,   185,   186,
     187,   188,     0,   189,   190,   191,   192,   193,     0,     0,
     194,   195,   196,   197,   198,     0,   199,   200,   201,   202,
       0,   203,   204,   205,     0,   206,     0,     0,     0,     0,
       0,   207,   208,   209,   210,   211,   212,   213,   214,     0,
     215,     0,   216,   217,   218,   219,   220,     0,   221,     0,
       0,   222,   223,   224,   225,     0,   226,   227,   228,     0,
     229,     0,   230,   231,   232,   233,   234,   235,   236,     0,
     237,   238,   239,     0,   240,     0,   241,     0,     0,     0,
     242,   243,     0,   244,   245,     0,   246,     0,   247,   248,
     249,   250,     0,   251,   252,   253,     0,   254,   255,   256,
     257,   258,   259,     0,     0,   260,   261,   262,   263,   264,
     265,   266,     0,   267,     0,   268,     0,     0,   269,     0,
     270,   271,   272,   273,   274,     0,   275,     0,   276,     0,
       0,   277,   278,   279,     0,     0,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,     0,   292,
     412,   293,   294,   295,   296,   297,   298,   299,   300,   301,
       0,   302,   303,     0,   304,     0,   305,   306,   307,   308,
       0,     0,   309,   413,     0,     0,   310,   311,     0,     0,
     312,     0,     0,   313,   314,   315,   316,   317,     0,   318,
     319,   320,   321,   322,     0,   323,   324,   325,   326,   327,
     328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
     337,   338,   339,   340,     0,   341,   342,     0,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,     0,   353,
     354,   355,     0,   356,   357,   358,   359,     0,   360,   361,
       0,   362,   363,   364,   365,   366,   367,   368,   369,   370,
     371,     0,   372,   373,     0,   374,   375,   376,   377,     0,
     378,   379,     0,     0,   380,   381,   382,   383,     0,   384,
     385,   386,   387,   388,     0,     0,   389,   390,   391,   392,
       0,     0,   393,   394,   395,   396,   397,   398,     0,   399,
     400,     0,     0,   401,   402,   403,   404,   405,   406,     0,
       0,     0,   407,   161,   162,   163,   164,   165,   166,   167,
     168,     0,   169,   170,     0,     0,   559,     0,     0,     0,
       0,   171,   172,     0,   173,     0,   174,   175,   176,     0,
    1109,     0,  1110,  1111,     0,   180,   181,   182,   183,   184,
       0,     0,   185,  1112,  1113,   188,     0,   189,   190,   191,
     192,     0,     0,     0,   194,   195,   196,   197,   198,     0,
     199,   200,     0,   202,     0,   203,   204,   205,     0,   206,
       0,     0,     0,     0,     0,   207,   208,   209,   210,   211,
    1114,  1115,   214,     0,   215,     0,   216,   217,   218,   219,
     220,     0,   221,     0,     0,   222,   797,   224,   225,     0,
     226,   227,   228,     0,   229,     0,   230,   231,   232,     0,
     234,   235,     0,     0,   237,   238,  1116,     0,   240,     0,
     241,     0,     0,     0,   242,   243,     0,   244,     0,     0,
     246,     0,   247,   248,   249,   250,     0,   251,   252,   253,
       0,   254,   255,   256,   257,   258,   259,     0,     0,     0,
     261,   262,   263,   264,  1117,  1118,     0,  1119,     0,   268,
       0,     0,   269,     0,   270,   271,   272,   273,   274,     0,
       0,     0,   276,     0,     0,   277,   278,   279,     0,     0,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,  1120,     0,  1121,     0,   293,   294,   295,   296,   297,
     298,   299,     0,   301,     0,   302,   303,     0,   304,     0,
       0,  1122,   307,   308,     0,     0,   309,     0,     0,     0,
     310,   311,     0,     0,     0,     0,     0,     0,   314,   315,
     316,   317,     0,     0,     0,   320,   321,   322,     0,   323,
     324,   325,   326,   327,   328,  1123,   330,   331,     0,   332,
     333,   334,   335,   336,   337,   338,   339,   340,     0,   341,
     342,     0,   343,   344,     0,   346,   347,   348,   349,   350,
     351,   352,     0,   353,   354,   355,     0,   356,  1124,   358,
     359,     0,   360,  1125,     0,   362,   363,   364,   365,   366,
     367,   368,   369,     0,   371,     0,   372,   373,     0,   374,
     375,   376,   377,     0,  1126,  1127,     0,     0,   380,     0,
     382,     0,     0,   384,   385,   386,   387,   388,     0,     0,
     389,   390,   391,   392,     0,     0,   393,   394,   395,     0,
    1128,   398,     0,   399,   400,     0,     0,   401,   402,   403,
     404,   405,   406,     0,     0,     0,  1129,   161,   162,   163,
     164,   165,   166,   167,   168,     0,   169,   170,     0,     0,
    1421,     0,     0,     0,     0,   171,   172,     0,   173,     0,
     174,   175,   176,     0,  1109,     0,  1110,  1111,     0,   180,
     181,   182,   183,   184,     0,     0,   185,  1112,  1113,   188,
       0,   189,   190,   191,   192,     0,     0,     0,   194,   195,
     196,   197,   198,     0,   199,   200,     0,   202,     0,   203,
     204,   205,     0,   206,     0,     0,     0,     0,     0,   207,
     208,   209,   210,   211,  1114,  1115,   214,     0,   215,     0,
     216,   217,   218,   219,   220,     0,   221,     0,     0,   222,
     797,   224,   225,     0,   226,   227,   228,     0,   229,     0,
     230,   231,   232,     0,   234,   235,     0,     0,   237,   238,
    1116,     0,   240,     0,   241,     0,     0,     0,   242,   243,
       0,   244,     0,     0,   246,     0,   247,   248,   249,   250,
       0,   251,   252,   253,     0,   254,   255,   256,   257,   258,
     259,     0,     0,     0,   261,   262,   263,   264,  1117,  1118,
       0,  1119,     0,   268,     0,     0,   269,     0,   270,   271,
     272,   273,   274,     0,     0,     0,   276,     0,     0,   277,
     278,   279,     0,     0,   280,   281,   282,   283,   284,   285,
     286,   287,   288,   289,   290,  1120,     0,  1121,     0,   293,
     294,   295,   296,   297,   298,   299,     0,   301,     0,   302,
     303,     0,   304,     0,     0,  1122,   307,   308,     0,     0,
     309,     0,     0,     0,   310,   311,     0,     0,     0,     0,
       0,     0,   314,   315,   316,   317,     0,     0,     0,   320,
     321,   322,     0,   323,   324,   325,   326,   327,   328,  1123,
     330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
     339,   340,     0,   341,   342,     0,   343,   344,     0,   346,
     347,   348,   349,   350,   351,   352,     0,   353,   354,   355,
       0,   356,  1124,   358,   359,     0,   360,  1125,     0,   362,
     363,   364,   365,   366,   367,   368,   369,     0,   371,     0,
     372,   373,     0,   374,   375,   376,   377,     0,  1126,  1127,
       0,     0,   380,     0,   382,     0,     0,   384,   385,   386,
     387,   388,     0,     0,   389,   390,   391,   392,     0,     0,
     393,   394,   395,     0,  1128,   398,     0,   399,   400,     0,
       0,   401,   402,   403,   404,   405,   406,     0,     0,     0,
    1554,   161,   162,   163,   164,   165,   166,   167,   168,     0,
     169,   170,     0,     0,  1421,     0,     0,     0,     0,   171,
     172,     0,   173,     0,   174,   175,   176,     0,   177,     0,
     178,   179,     0,   180,   181,   182,   183,   184,     0,     0,
     185,   186,   187,   188,     0,   189,   190,   191,   192,   193,
       0,     0,   194,   195,   196,   197,   198,     0,   199,   200,
     201,   202,     0,   203,   204,   205,     0,   206,     0,     0,
       0,     0,     0,   207,   208,   209,   210,   211,   212,   213,
     214,  1371,   215,     0,   216,   217,   218,   219,   220,     0,
     221,     0,     0,   222,   223,   224,   225,     0,   226,   227,
     228,     0,   229,     0,   230,   231,   232,   233,   234,   235,
     236,  1372,   237,   238,   239,     0,   240,     0,   241,     0,
       0,     0,   242,   243,     0,   244,   245,     0,   246,     0,
     247,   248,   249,   250,     0,   251,   252,   253,     0,   254,
     255,   256,   257,   258,   259,     0,     0,   260,   261,   262,
     263,   264,   265,   266,     0,   267,     0,   268,     0,     0,
     269,     0,   270,   271,   272,   273,   274,     0,   275,     0,
     276,     0,     0,   277,   278,   279,     0,     0,   280,   281,
     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
       0,   292,     0,   293,   294,   295,   296,   297,   298,   299,
     300,   301,     0,   302,   303,     0,   304,     0,   305,   306,
     307,   308,  1373,     0,   309,     0,  1374,     0,   310,   311,
       0,     0,   312,     0,     0,   313,   314,   315,   316,   317,
       0,   318,   319,   320,   321,   322,     0,   323,   324,   325,
     326,   327,   328,   329,   330,   331,     0,   332,   333,   334,
     335,   336,   337,   338,   339,   340,     0,   341,   342,     0,
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
       0,   353,   354,   355,     0,   356,   357,   358,   359,     0,
     360,   361,     0,   362,   363,   364,   365,   366,   367,   368,
     369,   370,   371,     0,   372,   373,     0,   374,   375,   376,
     377,     0,   378,   379,     0,     0,   380,   381,   382,   383,
    1375,   384,   385,   386,   387,   388,     0,     0,   389,   390,
     391,   392,     0,     0,   393,   394,   395,   396,   397,   398,
       0,   399,   400,     0,     0,   401,   402,   403,   404,   405,
     406,     0,     0,     0,   407,  1362,   879,     0,     0,     0,
     493,     0,     0,     0,     0,     0,     0,  1363,   161,   162,
     163,   164,   165,   166,   167,   168,     0,   169,   170,     0,
       0,     0,     0,     0,     0,     0,   171,   172,     0,   173,
       0,   174,   175,   176,     0,   177,     0,   178,   179,     0,
     180,   181,   182,   183,   184,     0,     0,   185,   186,   187,
     188,     0,   189,   190,   191,   192,   193,     0,     0,   194,
     195,   196,   197,   198,     0,   199,   200,   201,   202,     0,
     203,   204,   205,     0,   206,     0,     0,     0,     0,     0,
     207,   208,   209,   210,   211,   212,   213,   214,     0,   215,
       0,   216,   217,   218,   219,   220,     0,   221,     0,     0,
     222,   223,   224,   225,     0,   226,   227,   228,     0,   229,
       0,   230,   231,   232,   233,   234,   235,   236,  1372,   237,
     238,   239,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,   244,   245,     0,   246,     0,   247,   248,   249,
     250,     0,   251,   252,   253,     0,   254,   255,   256,   257,
     258,   259,     0,     0,   260,   261,   262,   263,   264,   265,
     266,     0,   267,     0,   268,     0,     0,   269,     0,   270,
     271,   272,   273,   274,     0,   275,     0,   276,     0,     0,
     277,   278,   279,     0,     0,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,     0,   292,     0,
     293,   294,   295,   296,   297,   298,   299,   300,   301,     0,
     302,   303,     0,   304,     0,   305,   306,   307,   308,  1373,
       0,   309,     0,  1374,     0,   310,   311,     0,     0,   312,
       0,     0,   313,   314,   315,   316,   317,     0,   318,   319,
     320,   321,   322,     0,   323,   324,   325,   326,   327,   328,
     329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,   343,   344,   345,
     346,   347,   348,   349,   350,   351,   352,     0,   353,   354,
     355,     0,   356,   357,   358,   359,     0,   360,   361,     0,
     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
       0,   372,   373,     0,   374,   375,   376,   377,     0,   378,
     379,     0,     0,   380,   381,   382,   383,  1375,   384,   385,
     386,   387,   388,     0,     0,   389,   390,   391,   392,     0,
       0,   393,   394,   395,   396,   397,   398,     0,   399,   400,
       0,     0,   401,   402,   403,   404,   405,   406,     0,     0,
       0,   407,  1362,   879,     0,     0,     0,   493,     0,     0,
       0,     0,     0,     0,  1363,   161,   484,   163,   164,   165,
     166,   167,   168,   485,   169,   170,     0,     0,     0,     0,
       0,     0,     0,   171,   172,     0,   173,     0,   486,   175,
     176,     0,   177,     0,   178,   179,     0,   180,   181,   182,
     183,   184,     0,     0,   185,   186,   187,   188,     0,   189,
     190,   191,   192,   193,     0,     0,   194,   195,   196,   197,
     198,     0,   199,   200,   201,   202,     0,   203,   204,   205,
       0,   206,     0,     0,     0,     0,     0,   207,   208,   209,
     210,   211,   212,   213,   214,     0,   215,     0,   216,   217,
     218,   219,   220,     0,   221,     0,     0,   222,   223,   224,
     225,     0,   226,   227,   228,     0,   229,     0,   230,   231,
     232,   233,   234,   235,   236,     0,   237,   487,   239,     0,
     240,     0,   488,     0,     0,     0,   242,   243,     0,   244,
     245,     0,   246,     0,   247,   248,   249,   250,     0,   251,
     252,   253,     0,   254,   255,   256,   257,   258,   259,     0,
       0,   260,   261,   262,   263,   264,   265,   266,     0,   267,
       0,   268,     0,     0,   269,     0,   270,   271,   272,   273,
     489,     0,   275,     0,   276,     0,     0,   277,   278,   279,
       0,     0,   280,   281,   282,   283,   284,   285,   286,   287,
     288,   289,   290,   291,     0,   292,     0,   490,   294,   295,
     296,   297,   298,   299,   300,   301,     0,   302,   303,     0,
     304,     0,   305,   306,   307,   308,     0,     0,   309,     0,
       0,     0,   310,   311,     0,     0,   312,     0,     0,   313,
     314,   315,   316,   317,     0,   318,   319,   320,   321,   322,
       0,   491,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   492,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,     0,   343,   344,   345,   346,   347,   348,
     349,   350,   351,   352,     0,   353,   354,   355,     0,   356,
     357,   358,   359,     0,   360,   361,     0,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,     0,   372,   373,
    1319,   374,   375,   376,   377,  1320,   378,   379,     0,     0,
     380,   381,   382,   383,     0,   384,   385,   386,   387,   388,
       0,     0,   389,   390,   391,   392,     0,     0,   393,   394,
     395,   396,   397,   398,     0,   399,   400,  1317,     0,   401,
     402,   403,   404,   405,   406,  1319,     0,     0,   407,     0,
    1320,     0,     0,     0,   493,     0,  1317,     0,     0,   425,
       0,   494,     0,     0,  1319,     0,     0,     0,     0,  1320,
     426,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2683,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     427,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   428,     0,
    -476,     0, -1525,     0,     0,     0,  1322,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   429,     0,     0,     0,
       0,     0,   430,     0,     0,     0,  1323,  1324,     0,     0,
       0,     0,     0,     0,   431,     0,     0,     0,     0, -1525,
       0,     0,     0,     0,     0,     0,     0,  1321,     0,     0,
       0,  1322,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  -600,   432,     0,  1321,     0,   433,     0,
    1322,  1323,  1324,  1327,     0,     0,     0,     0,     0,     0,
       0,     0,  -586,     0,  1325,     0,  1328,     0,     0,     0,
    1323,  1324,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1325,     0,  -387,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1326,   434,     0,  1327,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1328,     0,  1329,  1326,     0,     0,  1327,     0,     0,
       0,     0,     0,     0,     0,     0,     0, -1525,     0,     0,
    1328,     0,  1329,     0,     0,     0,     0,     0,     0,   435,
       0,   436,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    -387,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1330,     0,     0,     0,     0,     0,     0,     0,
       0,   437,     0,     0,     0,  -600,     0,   438,     0,     0,
       0,  1330,     0,     0,     0,     0,     0,  1331,     0,     0,
       0,     0,     0,     0,  1335,  1336,  1337,  1338,  1339,  1340,
       0,     0,     0,     0,     0,  1341,     0,     0,   439,   440,
       0,   441,     0,     0,     0,     0,     0,     0,     0,   442,
       0,     0,     0,   443,   444,     0,     0,     0,   445,     0,
       0,     0,  1331,   446,     0,  1332,  1333,  1334,     0,  1335,
    1336,  1337,  1338,  1339,  1340,     0,     0,     0,     0,  2881,
    1341,  1331,     0,     0,  1332,  1333,  1334,     0,  1335,  1336,
    1337,  1338,  1339,  1340,     0,     0,     0,     0,     0,  1341,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
       0,   173,     0,   174,   175,   176,     0,   177,     0,   178,
     179,     0,   180,   181,   182,   183,   184,     0,     0,   185,
     186,   187,   188,     0,   189,   190,   191,   192,   193,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   201,
     202,     0,   203,   204,   205,     0,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,   212,   213,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   236,
       0,   237,   238,   239,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,   244,   245,     0,   246,     0,   247,
     248,   249,   250,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,     0,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,     0,     0,   269,
       0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
       0,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,     0,
     292,     0,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,     0,   304,     0,   305,   306,   307,
     308,     0,     0,   309,     0,     0,     0,   310,   311,     0,
       0,   312,     0,     0,   313,   314,   315,   316,   317,     0,
     318,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,   357,   358,   359,     0,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     370,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   378,   379,     0,     0,   380,   381,   382,   383,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,   396,   397,   398,     0,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   407,  2923,   509,  2924,  2925,     0,  2926,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
       0,   173,     0,   174,   175,   176,     0,   177,     0,   178,
     179,     0,   180,   181,   182,   183,   184,     0,     0,   185,
     186,   187,   188,     0,   189,   190,   191,   192,   193,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   201,
     202,     0,   203,   204,   205,     0,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,   212,   213,   214,
    1356,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   236,
       0,   237,   238,   239,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,   244,   245,     0,   246,     0,   247,
     248,   249,   250,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,     0,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,     0,     0,   269,
       0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
       0,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,     0,
     292,     0,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,     0,   304,     0,   305,   306,   307,
     308,     0,     0,   309,     0,     0,     0,   310,   311,     0,
       0,   312,     0,     0,   313,   314,   315,   316,   317,     0,
     318,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,   357,   358,   359,     0,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     370,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   378,   379,     0,     0,   380,   381,   382,   383,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,   396,   397,   398,     0,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   407,     0,   879,   161,   162,   163,   164,
     165,   166,   167,   168,     0,   169,   170,     0,     0,     0,
       0,     0,     0,     0,   171,   172,     0,   173,     0,   174,
     175,   176,     0,   177,     0,   178,   179,     0,   180,   181,
     182,   183,   184,     0,     0,   185,   186,   187,   188,     0,
     189,   190,   191,   192,   193,     0,     0,   194,   195,   196,
     197,   198,     0,   199,   200,   201,   202,     0,   203,   204,
     205,     0,   206,     0,     0,     0,     0,     0,   207,   208,
     209,   210,   211,   212,   213,   214,     0,   215,     0,   216,
     217,   218,   219,   220,     0,   221,     0,     0,   222,   223,
     224,   225,     0,   226,   227,   228,     0,   229,     0,   230,
     231,   232,   233,   234,   235,   236,     0,   237,   238,   239,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
     244,   245,     0,   246,     0,   247,   248,   249,   250,     0,
     251,   252,   253,     0,   254,   255,   256,   257,   258,   259,
       0,     0,   260,   261,   262,   263,   264,   265,   266,     0,
     267,     0,   268,     0,     0,   269,     0,   270,   271,   272,
     273,   274,     0,   275,     0,   276,     0,     0,   277,   278,
     279,     0,     0,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,     0,   292,     0,   293,   294,
     295,   296,   297,   298,   299,   300,   301,     0,   302,   303,
       0,   304,     0,   305,   306,   307,   308,     0,     0,   309,
       0,     0,     0,   310,   311,     0,     0,   312,     0,     0,
     313,   314,   315,   316,   317,     0,   318,   319,   320,   321,
     322,     0,   323,   324,   325,   326,   327,   328,   329,   330,
     331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,   343,   344,   345,   346,   347,
     348,   349,   350,   351,   352,     0,   353,   354,   355,     0,
     356,   357,   358,   359,     0,   360,   361,     0,   362,   363,
     364,   365,   366,   367,   368,   369,   370,   371,     0,   372,
     373,     0,   374,   375,   376,   377,     0,   378,   379,     0,
       0,   380,   381,   382,   383,     0,   384,   385,   386,   387,
     388,     0,     0,   389,   390,   391,   392,     0,     0,   393,
     394,   395,   396,   397,   398,     0,   399,   400,     0,     0,
     401,   402,   403,   404,   405,   406,     0,     0,     0,   407,
       0,   879,   161,   162,   163,   164,   165,   166,   167,   168,
       0,   169,   170,     0,     0,     0,     0,     0,     0,     0,
     171,   172,     0,   173,     0,   174,   175,   176,     0,   177,
       0,   178,   179,     0,   180,   181,   182,   183,   184,     0,
       0,   185,   186,   187,   188,     0,   189,   190,   191,   192,
     193,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,   201,   202,     0,   203,   204,   205,     0,   206,     0,
       0,     0,     0,     0,   207,   208,   209,   210,   211,   212,
     213,   214,     0,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   223,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,   233,   234,
     235,   236,     0,   237,   238,   239,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,   244,   245,     0,   246,
       0,   247,   248,   249,  1205,     0,   251,   252,   253,     0,
     254,   255,   256,   257,   258,   259,     0,     0,   260,   261,
     262,   263,   264,   265,   266,     0,   267,     0,   268,     0,
       0,   269,     0,   270,   271,   272,   273,   274,     0,   275,
       0,   276,     0,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,     0,   292,     0,   293,   294,   295,   296,   297,   298,
     299,   300,   301,     0,   302,   303,     0,   304,     0,   305,
     306,   307,   308,     0,     0,   309,     0,     0,     0,   310,
     311,     0,     0,   312,     0,     0,   313,   314,   315,   316,
     317,     0,   318,   319,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,   329,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,   343,   344,   345,   346,   347,   348,   349,   350,   351,
     352,     0,   353,   354,   355,     0,   356,   357,   358,   359,
       0,   360,   361,     0,   362,   363,   364,   365,   366,   367,
     368,   369,   370,   371,     0,   372,   373,     0,   374,   375,
     376,   377,     0,   378,   379,     0,     0,   380,   381,   382,
     383,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,     0,     0,   393,   394,   395,   396,   397,
     398,     0,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,   407,     0,   879,   161,   162,
     163,   164,   165,   166,   167,   168,  1004,   169,   170,  1005,
    1006,  1007,  1008,  1009,  1010,  1011,   171,   172,  1012,   173,
     582,   174,   175,   176,   583,   177,   584,   178,   179,  1013,
     180,   181,   182,   183,   184,  1014,  1015,   185,   186,   187,
     188,  1016,   189,   190,   191,   192,   193,  1017,  1018,   194,
     195,   196,   197,   198,  1019,   199,   200,   201,   202,  1020,
     203,   204,   205,   585,   206,  1021,  1022,  1023,  1024,  1025,
     207,   208,   209,   210,   211,   212,   213,   214,  1026,   215,
    1027,   216,   217,   218,   219,   220,  1028,   221,  1029,  1030,
     222,   223,   224,   225,  1031,   226,   227,   228,  1032,   229,
    1033,   230,   231,   232,   233,   234,   235,   236,  1034,   237,
     238,   239,  1035,   240,  1036,   241,   586,  1037,   587,   242,
     243,  1038,   244,   245,  1039,   246,  1040,   247,   248,   249,
     250,   588,   251,   252,   253,  1041,   254,   255,   256,   257,
     258,   259,  1042,   589,   260,   261,   262,   263,   264,   265,
     266,  1043,   267,  1044,   268,   590,   591,   269,   592,   270,
     271,   272,   273,   274,  1045,   275,   593,   276,   594,  1046,
     277,   278,   279,  1047,  1048,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   595,   292,  1049,
     293,   294,   295,   296,   297,   298,   299,   300,   301,  1050,
     302,   303,   596,   304,  1051,   305,   306,   307,   308,  1052,
    1053,   309,  1054,  1055,  1056,   310,   311,  1057,  1058,   312,
     597,   598,   313,   314,   315,   316,   317,  1059,   318,   319,
     320,   321,   322,  1060,   323,   324,   325,   326,   327,   328,
     329,   330,   331,  1061,   332,   333,   334,   335,   336,   337,
     338,   339,   340,  1062,   341,   342,   599,   343,   344,   345,
     346,   347,   348,   349,   350,   351,   352,  1063,   353,   354,
     355,  1064,   356,   357,   358,   359,   600,   360,   361,  1065,
     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
    1066,   372,   373,  1067,   374,   375,   376,   377,  1068,   378,
     379,  1069,  1070,   380,   381,   382,   383,  1071,   384,   385,
     386,   387,   388,  1072,  1073,   389,   390,   391,   392,  1074,
    1075,   393,   394,   395,   396,   397,   398,   601,   399,   400,
    1076,  1077,   401,   402,   403,   404,   405,   406,     0,     0,
       0,  1078,   161,   162,   163,   164,   165,   166,   167,   168,
       0,   169,   170,     0,     0,     0,     0,     0,     0,     0,
     171,   172,     0,   173,   582,   174,   175,   176,   583,   177,
     584,   178,   179,     0,   180,   181,   182,   183,   184,     0,
       0,   185,   186,   187,   188,     0,   189,   190,   191,   192,
     193,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,   201,   202,     0,   203,   204,   205,   585,   206,     0,
       0,     0,     0,     0,   207,   208,   209,   210,   211,   212,
     213,   214,     0,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   223,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,   233,   234,
     235,   236,     0,   237,   238,   239,     0,   240,     0,   241,
     586,     0,   587,   242,   243,     0,   244,   245,     0,   246,
       0,   247,   248,   249,   250,   588,   251,   252,   253,     0,
     254,   255,   256,   257,   258,   259,     0,   589,   260,   261,
     262,   263,   264,   265,   266,     0,   267,     0,   268,   590,
     591,   269,   592,   270,   271,   272,   273,   274,     0,   275,
     593,   276,   594,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,   595,   292,   412,   293,   294,   295,   296,   297,   298,
     299,   300,   301,     0,   302,   303,   596,   304,     0,   305,
     306,   307,   308,     0,     0,   309,   413,     0,     0,   310,
     311,     0,     0,   312,   597,   598,   313,   314,   315,   316,
     317,     0,   318,   319,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,   329,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
     599,   343,   344,   345,   346,   347,   348,   349,   350,   351,
     352,     0,   353,   354,   355,     0,   356,   357,   358,   359,
     600,   360,   361,     0,   362,   363,   364,   365,   366,   367,
     368,   369,   370,   371,     0,   372,   373,     0,   374,   375,
     376,   377,     0,   378,   379,     0,     0,   380,   381,   382,
     383,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,     0,     0,   393,   394,   395,   396,   397,
     398,   601,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,   602,   161,   162,   163,   164,
     165,   166,   167,   168,     0,   169,   170,     0,     0,     0,
       0,     0,     0,     0,   171,   172,     0,   173,   582,   174,
     175,   176,   583,   177,   584,   178,   179,     0,   180,   181,
     182,   183,   184,     0,     0,   185,   186,   187,   188,     0,
     189,   190,   191,   192,   193,     0,     0,   194,   195,   196,
     197,   198,     0,   199,   200,   201,   202,     0,   203,   204,
     205,   585,   206,     0,     0,     0,     0,     0,   207,   208,
     209,   210,   211,   212,   213,   214,     0,   215,     0,   216,
     217,   218,   219,   220,     0,   221,     0,     0,   222,   223,
     224,   225,     0,   226,   227,   228,     0,   229,     0,   230,
     231,   232,   233,   234,   235,   236,     0,   237,   238,   239,
       0,   240,     0,   241,   586,     0,   587,   242,   243,     0,
     244,   245,     0,   246,     0,   247,   248,   249,   710,   588,
     251,   252,   253,     0,   254,   255,   256,   257,   258,   259,
       0,   589,   260,   261,   262,   263,   264,   265,   266,     0,
     267,     0,   268,   590,   591,   269,   592,   270,   271,   272,
     273,   274,     0,   275,   593,   276,   594,     0,   277,   278,
     279,     0,     0,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,   595,   292,   412,   293,   294,
     295,   296,   297,   298,   299,   300,   301,     0,   302,   303,
     596,   304,     0,   305,   306,   307,   308,     0,     0,   309,
     413,     0,     0,   310,   311,     0,     0,   312,   597,   598,
     313,   314,   315,   316,   317,     0,   318,   319,   320,   321,
     322,     0,   323,   324,   325,   326,   327,   328,   329,   330,
     331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
     340,     0,   341,   342,   599,   343,   344,   345,   346,   347,
     348,   349,   350,   351,   352,     0,   353,   354,   355,     0,
     356,   357,   358,   359,   600,   360,   361,     0,   362,   363,
     364,   365,   366,   367,   368,   369,   370,   371,     0,   372,
     373,     0,   374,   375,   376,   377,     0,   378,   379,     0,
       0,   380,   381,   382,   383,     0,   384,   385,   386,   387,
     388,     0,     0,   389,   390,   391,   392,     0,     0,   393,
     394,   395,   396,   397,   398,   601,   399,   400,     0,     0,
     401,   402,   403,   404,   405,   406,     0,     0,     0,   602,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
       0,   173,   582,   174,   175,   176,   583,   177,   584,   178,
     179,     0,   180,   181,   182,   183,   184,     0,     0,   185,
     186,   187,   188,     0,   189,   190,   191,   192,   193,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   201,
     202,     0,   203,   204,   205,   585,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,   212,   213,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   236,
       0,   237,   238,   239,     0,   240,     0,   241,   586,     0,
     587,   242,   243,     0,   244,   245,     0,   246,     0,   247,
     248,   249,   717,   588,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,   589,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,   590,   591,   269,
     592,   270,   271,   272,   273,   274,     0,   275,   593,   276,
     594,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,   595,
     292,   412,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,   596,   304,     0,   305,   306,   307,
     308,     0,     0,   309,   413,     0,     0,   310,   311,     0,
       0,   312,   597,   598,   313,   314,   315,   316,   317,     0,
     318,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   599,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,   357,   358,   359,   600,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     370,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   378,   379,     0,     0,   380,   381,   382,   383,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,   396,   397,   398,   601,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   602,   161,   162,   163,   164,   165,   166,
     167,   168,     0,   169,   170,     0,     0,     0,     0,     0,
       0,     0,   171,   172,     0,   173,     0,   174,   175,   176,
       0,   177,     0,   178,   179,     0,   180,   181,   182,   183,
     184,     0,     0,   185,   186,   187,   188,  1435,   189,   190,
     191,   192,   193,     0,     0,   194,   195,   196,   197,   198,
    1436,   199,   200,   201,   202,     0,   203,   204,   205,     0,
     206,     0,     0,     0,     0,     0,   207,   208,   209,   210,
     211,   212,   213,   214,     0,   215,     0,   216,   217,   218,
     219,   220,     0,   221,     0,     0,   222,   223,   224,   225,
       0,   226,   227,   228,     0,   229,     0,   230,   231,   232,
     233,   234,   235,   236,     0,   237,   238,   239,     0,   240,
    1437,   241,     0,     0,     0,   242,   243,     0,   244,   245,
       0,   246,     0,   247,   248,   249,   250,     0,   251,   252,
     253,     0,   254,   255,   256,   257,   258,   259,     0,     0,
     260,   261,   262,   263,   264,   265,   266,     0,   267,     0,
     268,     0,     0,   269,     0,   270,   271,   272,   273,   274,
       0,   275,     0,   276,  2028,     0,   277,   278,   279,     0,
       0,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,     0,   292,     0,   293,   294,   295,   296,
     297,   298,   299,   300,   301,     0,   302,   303,     0,   304,
       0,   305,   306,   307,   308,     0,     0,   309,     0,     0,
       0,   310,   311,     0,     0,   312,     0,     0,   313,   314,
     315,   316,   317,     0,   318,   319,   320,   321,   322,  1438,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   352,     0,   353,   354,   355,     0,   356,   357,
     358,   359,     0,   360,   361,     0,   362,   363,   364,   365,
     366,   367,   368,   369,   370,   371,     0,   372,   373,     0,
     374,   375,   376,   377,     0,   378,   379,     0,     0,   380,
     381,   382,   383,     0,   384,   385,   386,   387,   388,     0,
    1439,   389,   390,   391,   392,     0,     0,   393,   394,   395,
     396,   397,   398,     0,   399,   400,     0,     0,   401,   402,
     403,   404,   405,   406,     0,     0,     0,   407,   161,   162,
     163,   164,   165,   533,   167,   168,   498,   169,   170,     0,
       0,     0,     0,     0,     0,     0,   171,   172,     0,   173,
       0,   174,   175,   176,     0,   177,     0,   178,   179,     0,
     180,   181,   182,   183,   184,     0,     0,   185,   186,   187,
     188,     0,   189,   190,   191,   192,   193,     0,     0,   194,
     195,   196,   197,   198,     0,   199,   200,   201,   202,   499,
     203,   204,   205,     0,   206,     0,     0,     0,     0,     0,
     207,   208,   209,   210,   211,   212,   213,   214,     0,   215,
       0,   216,   217,   218,   219,   220,     0,   221,     0,     0,
     222,   223,   224,   225,     0,   226,   227,   228,     0,   229,
       0,   230,   231,   232,   233,   234,   235,   236,     0,   237,
     238,   239,     0,   240,     0,   241,     0,     0,     0,   242,
     243,   534,   244,   245,     0,   246,     0,   247,   248,   249,
     250,     0,   251,   252,   253,     0,   254,   255,   256,   257,
     258,   259,     0,     0,   260,   261,   262,   263,   264,   265,
     266,     0,   267,     0,   268,     0,     0,   269,     0,   270,
     271,   272,   273,   274,     0,   275,     0,   276,     0,     0,
     277,   278,   279,     0,     0,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,     0,   292,     0,
     293,   294,   295,   296,   297,   298,   299,   300,   301,     0,
     302,   303,     0,   304,     0,   305,   306,   307,   308,     0,
       0,   309,     0,     0,     0,   310,   311,     0,     0,   312,
       0,     0,   313,   314,   315,   316,   317,     0,   318,   319,
     320,   321,   322,     0,   323,   324,   325,   326,   327,   328,
     329,   330,   331,   500,   332,   333,   334,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,   343,   344,   345,
     346,   347,   348,   349,   350,   351,   352,   501,   353,   354,
     355,     0,   356,   357,   358,   359,     0,   360,   361,     0,
     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
       0,   372,   373,     0,   374,   375,   376,   377,     0,   378,
     379,     0,     0,   380,   381,   382,   383,     0,   384,   385,
     386,   387,   388,     0,     0,   389,   390,   391,   392,     0,
       0,   393,   394,   395,   396,   397,   398,     0,   399,   400,
       0,     0,   401,   402,   403,   404,   405,   406,     0,     0,
       0,   407,   161,   162,   163,   164,   165,   166,   167,   168,
       0,   169,   170,     0,     0,     0,     0,     0,     0,     0,
     171,   172,     0,   173,   582,   174,   175,   176,   583,  1109,
     584,  1110,  1111,     0,   180,   181,   182,   183,   184,     0,
       0,   185,  1112,  1113,   188,     0,   189,   190,   191,   192,
       0,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,     0,   202,     0,   203,   204,   205,   585,   206,     0,
       0,     0,     0,     0,   207,   208,   209,   210,   211,  1114,
    1115,   214,     0,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   797,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,     0,   234,
     235,     0,     0,   237,   238,  1116,     0,   240,     0,   241,
     586,     0,   587,   242,   243,     0,   244,     0,     0,   246,
       0,   247,   248,   249,   250,   588,   251,   252,   253,  1457,
     254,   255,   256,   257,   258,   259,     0,   589,  1458,   261,
     262,   263,   264,  1117,  1118,     0,  1119,     0,   268,   590,
     591,   269,   592,   270,   271,   272,   273,   274,     0,     0,
     593,   276,   594,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
    1120,   595,  1121,     0,   293,   294,   295,   296,   297,   298,
     299,     0,   301,     0,   302,   303,   596,   304,     0,     0,
    1122,   307,   308,     0,     0,   309,     0,     0,     0,   310,
     311,     0,     0,  1459,   597,   598,     0,   314,   315,   316,
     317,     0,     0,     0,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,  1123,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
     599,   343,   344,     0,   346,   347,   348,   349,   350,   351,
     352,     0,   353,   354,   355,     0,   356,  1460,   358,   359,
     600,   360,  1125,     0,   362,   363,   364,   365,   366,   367,
     368,   369,     0,   371,     0,   372,   373,     0,   374,   375,
     376,   377,     0,  1126,  1127,     0,     0,   380,     0,   382,
       0,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,     0,     0,   393,   394,   395,     0,  1128,
     398,   601,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,  1461,   161,   162,   163,   164,
     165,   166,   167,   168,   498,   169,   170,     0,     0,     0,
       0,     0,     0,     0,   171,   172,     0,   173,     0,   174,
     175,   176,     0,   177,     0,   178,   179,     0,   180,   181,
     182,   183,   184,     0,     0,   185,   186,   187,   188,     0,
     189,   190,   191,   192,   193,     0,     0,   194,   195,   196,
     197,   198,     0,   199,   200,   201,   202,   499,   203,   204,
     205,     0,   206,     0,     0,     0,     0,     0,   207,   208,
     209,   210,   211,   212,   213,   214,     0,   215,     0,   216,
     217,   218,   219,   220,     0,   221,     0,     0,   222,   223,
     224,   225,     0,   226,   227,   228,     0,   229,     0,   230,
     231,   232,   233,   234,   235,   236,     0,   237,   238,   239,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
     244,   245,     0,   246,     0,   247,   248,   249,   250,     0,
     251,   252,   253,     0,   254,   255,   256,   257,   258,   259,
       0,     0,   260,   261,   262,   263,   264,   265,   266,     0,
     267,     0,   268,     0,     0,   269,     0,   270,   271,   272,
     273,   274,     0,   275,     0,   276,     0,     0,   277,   278,
     279,     0,     0,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,     0,   292,     0,   293,   294,
     295,   296,   297,   298,   299,   300,   301,     0,   302,   303,
       0,   304,     0,   305,   306,   307,   308,     0,     0,   309,
       0,     0,     0,   310,   311,     0,     0,   312,     0,     0,
     313,   314,   315,   316,   317,     0,   318,   319,   320,   321,
     322,     0,   323,   324,   325,   326,   327,   328,   329,   330,
     331,   500,   332,   333,   334,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,   343,   344,   345,   346,   347,
     348,   349,   350,   351,   352,   501,   353,   354,   355,     0,
     356,   357,   358,   359,     0,   360,   361,     0,   362,   363,
     364,   365,   366,   367,   368,   369,   370,   371,     0,   372,
     373,     0,   374,   375,   376,   377,     0,   378,   379,     0,
       0,   380,   381,   382,   383,     0,   384,   385,   386,   387,
     388,     0,     0,   389,   390,   391,   392,     0,     0,   393,
     394,   395,   396,   397,   398,     0,   399,   400,     0,     0,
     401,   402,   403,   404,   405,   406,     0,     0,     0,   407,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     3,     4,     0,     0,     0,     0,     0,   171,   172,
       0,   173,     0,   174,   175,   176,     0,   177,     0,   178,
     179,     0,   180,   181,   182,   183,   184,     0,     0,   185,
     186,   187,   188,     0,   189,   190,   191,   192,   193,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   201,
     202,     0,   203,   204,   205,     0,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,   212,   213,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   236,
       0,   237,   238,   239,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,   244,   245,     0,   246,     0,   247,
     248,   249,   250,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,     0,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,     0,     0,   269,
       0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
       0,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,     0,
     292,   412,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,     0,   304,     0,   305,   306,   307,
     308,     0,     0,   309,   413,     0,     0,   310,   311,     0,
       0,   312,     0,     0,   313,   314,   315,   316,   317,     0,
     318,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,   357,   358,   359,     0,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     370,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   378,   379,     0,     0,   380,   381,   382,   383,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,   396,   397,   398,     0,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   407,   161,   162,   163,   164,   165,   166,
     167,   168,     0,   169,   170,     0,     0,     0,     0,     0,
       0,     0,   171,   172,     0,   173,     0,   174,   175,   176,
       0,   177,     0,   178,   179,     0,   180,   181,   182,   183,
     184,     0,     0,   185,   186,   187,   188,     0,   189,   190,
     191,   192,   193,     0,     0,   194,   195,   196,   197,   198,
       0,   199,   200,   201,   202,     0,   203,   204,   205,     0,
     206,     0,     0,     0,     0,     0,   207,   208,   209,   210,
     211,   212,   213,   214,     0,   215,     0,   216,   217,   218,
     219,   220,     0,   221,     0,     0,   222,   223,   224,   225,
       0,   226,   227,   228,     0,   229,     0,   230,   231,   232,
     233,   234,   235,   236,     0,   237,   238,   239,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,   244,   245,
       0,   246,     0,   247,   248,   249,   250,     0,   251,   252,
     253,     0,   254,   255,   256,   257,   258,   259,     0,     0,
     260,   261,   262,   263,   264,   265,   266,     0,   267,     0,
     268,     0,     0,   269,     0,   270,   271,   272,   273,   274,
       0,   275,     0,   276,     0,     0,   277,   278,   279,     0,
       0,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,     0,   292,   412,   293,   294,   295,   296,
     297,   298,   299,   300,   301,     0,   302,   303,     0,   304,
       0,   305,   306,   307,   308,     0,     0,   309,   413,     0,
     561,   310,   311,     0,     0,   312,     0,     0,   313,   314,
     315,   316,   317,     0,   318,   319,   320,   321,   322,     0,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   352,     0,   353,   354,   355,     0,   356,   357,
     358,   359,     0,   360,   361,     0,   362,   363,   364,   365,
     366,   367,   368,   369,   370,   371,     0,   372,   373,     0,
     374,   375,   376,   377,     0,   378,   379,     0,     0,   380,
     381,   382,   383,     0,   384,   385,   386,   387,   388,     0,
       0,   389,   390,   391,   392,     0,     0,   393,   394,   395,
     396,   397,   398,     0,   399,   400,     0,     0,   401,   402,
     403,   404,   405,   406,     0,     0,     0,   407,   161,   162,
     163,   164,   165,   166,   167,   168,   871,   169,   170,     0,
       0,     0,     0,     0,     0,     0,   171,   172,     0,   173,
       0,   174,   175,   176,     0,   177,     0,   178,   179,     0,
     180,   181,   182,   183,   184,     0,     0,   185,   186,   187,
     188,     0,   189,   190,   191,   192,   193,     0,     0,   194,
     195,   196,   197,   198,     0,   199,   200,   201,   202,     0,
     203,   204,   205,     0,   206,     0,     0,     0,     0,     0,
     207,   208,   209,   210,   211,   212,   213,   214,     0,   215,
       0,   216,   217,   218,   219,   220,     0,   221,     0,     0,
     222,   223,   224,   225,     0,   226,   227,   228,     0,   229,
       0,   230,   231,   232,   233,   234,   235,   236,     0,   237,
     238,   239,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,   244,   245,     0,   246,     0,   247,   248,   249,
     250,     0,   251,   252,   253,     0,   254,   255,   256,   257,
     258,   259,     0,     0,   260,   261,   262,   263,   264,   265,
     266,     0,   267,     0,   268,     0,     0,   269,     0,   270,
     271,   272,   273,   274,     0,   275,     0,   276,     0,     0,
     277,   278,   279,     0,     0,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,     0,   292,   412,
     293,   294,   295,   296,   297,   298,   299,   300,   301,     0,
     302,   303,     0,   304,     0,   305,   306,   307,   308,     0,
       0,   309,   413,     0,     0,   310,   311,     0,     0,   312,
       0,     0,   313,   314,   315,   316,   317,     0,   318,   319,
     320,   321,   322,     0,   323,   324,   325,   326,   327,   328,
     329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,   343,   344,   345,
     346,   347,   348,   349,   350,   351,   352,     0,   353,   354,
     355,     0,   356,   357,   358,   359,     0,   360,   361,     0,
     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
       0,   372,   373,     0,   374,   375,   376,   377,     0,   378,
     379,     0,     0,   380,   381,   382,   383,     0,   384,   385,
     386,   387,   388,     0,     0,   389,   390,   391,   392,     0,
       0,   393,   394,   395,   396,   397,   398,     0,   399,   400,
       0,     0,   401,   402,   403,   404,   405,   406,     0,     0,
       0,   407,   161,   162,   163,   164,   165,   166,   167,   168,
       0,   169,   170,     0,     0,     0,     0,     0,     0,     0,
     171,   172,     0,   173,     0,   174,   175,   176,     0,   177,
       0,   178,   179,     0,   180,   181,   182,   183,   184,     0,
       0,   185,   186,   187,   188,     0,   189,   190,   191,   192,
     193,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,   201,   202,     0,   203,   204,   205,     0,   206,     0,
       0,     0,     0,     0,   207,   208,  1221,   210,   211,   212,
     213,   214,     0,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   223,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,   233,   234,
     235,   236,     0,   237,   238,   239,     0,   240,     0,   241,
       0,     0,     0,  1222,   243,     0,   244,   245,     0,   246,
       0,   247,   248,   249,   250,     0,   251,   252,   253,     0,
     254,   255,   256,   257,   258,   259,     0,     0,   260,   261,
     262,   263,   264,   265,   266,     0,   267,     0,   268,     0,
       0,   269,     0,   270,   271,  1223,   273,   274,     0,   275,
       0,   276,     0,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,     0,   292,   412,   293,   294,   295,   296,   297,   298,
     299,   300,   301,     0,   302,   303,     0,   304,     0,   305,
     306,   307,   308,     0,     0,   309,   413,     0,     0,   310,
     311,     0,     0,   312,     0,     0,   313,   314,   315,   316,
     317,     0,   318,   319,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,   329,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,   343,   344,   345,   346,   347,   348,  1224,   350,   351,
     352,     0,  1225,   354,   355,     0,   356,   357,   358,   359,
       0,   360,   361,     0,   362,   363,   364,   365,   366,   367,
     368,   369,   370,   371,     0,   372,   373,  1226,  1227,   375,
     376,   377,     0,   378,   379,     0,     0,   380,   381,   382,
     383,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,     0,     0,   393,   394,   395,   396,   397,
     398,     0,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,   407,   161,   162,   163,   164,
     165,   166,   167,   168,     0,   169,   170,     0,     0,     0,
       0,     0,     0,     0,   171,   172,     0,   173,     0,   174,
     175,   176,     0,   177,     0,   178,   179,     0,   180,   181,
     182,   183,   184,     0,     0,   185,   186,   187,   188,     0,
     189,   190,   191,   192,   193,     0,     0,   194,   195,   196,
     197,   198,     0,   199,   200,   201,   202,   499,   203,   204,
     205,     0,   206,     0,     0,     0,     0,     0,   207,   208,
     209,   210,   211,   212,   213,   214,     0,   215,     0,   216,
     217,   218,   219,   220,     0,   221,     0,     0,   222,   223,
     224,   225,     0,   226,   227,   228,     0,   229,     0,   230,
     231,   232,   233,   234,   235,   236,     0,   237,   238,   239,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
     244,   245,     0,   246,     0,   247,   248,   249,   250,     0,
     251,   252,   253,     0,   254,   255,   256,   257,   258,   259,
       0,     0,   260,   261,   262,   263,   264,   265,   266,     0,
     267,     0,   268,     0,     0,   269,     0,   270,   271,   272,
     273,   274,     0,   275,     0,   276,     0,     0,   277,   278,
     279,     0,     0,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,     0,   292,     0,   293,   294,
     295,   296,   297,   298,   299,   300,   301,     0,   302,   303,
       0,   304,     0,   305,   306,   307,   308,     0,     0,   309,
       0,     0,     0,   310,   311,     0,     0,   312,     0,     0,
     313,   314,   315,   316,   317,     0,   318,   319,   320,   321,
     322,     0,   323,   324,   325,   326,   327,   328,   329,   330,
     331,   500,   332,   333,   334,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,   343,   344,   345,   346,   347,
     348,   349,   350,   351,   352,   501,   353,   354,   355,     0,
     356,   357,   358,   359,     0,   360,   361,     0,   362,   363,
     364,   365,   366,   367,   368,   369,   370,   371,     0,   372,
     373,     0,   374,   375,   376,   377,     0,   378,   379,     0,
       0,   380,   381,   382,   383,     0,   384,   385,   386,   387,
     388,     0,     0,   389,   390,   391,   392,     0,     0,   393,
     394,   395,   396,   397,   398,     0,   399,   400,     0,     0,
     401,   402,   403,   404,   405,   406,     0,     0,     0,   407,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
       0,   173,     0,   174,   175,   176,     0,   177,     0,   178,
     179,     0,   180,   181,   182,   183,   184,     0,     0,   185,
     186,   187,   188,     0,   189,   190,   191,   192,   193,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   201,
     202,     0,   203,   204,   205,     0,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,   212,   213,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   236,
       0,   237,   238,   239,     0,   240,     0,   241,     0,     0,
       0,   242,  1807,     0,   244,   245,     0,   246,     0,   247,
     248,   249,   250,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,     0,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,     0,     0,   269,
       0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
       0,     0,   277,   278,  1808,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,     0,
     292,   412,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,     0,   304,     0,   305,   306,   307,
     308,     0,     0,   309,   413,     0,     0,   310,   311,     0,
       0,   312,     0,     0,   313,   314,   315,   316,   317,     0,
     318,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,   357,   358,   359,     0,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     370,   371,     0,   372,   373,  1809,   374,  1810,   376,  1811,
       0,   378,   379,     0,     0,   380,   381,   382,   383,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,   396,   397,   398,     0,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   407,   161,   162,   163,   164,   165,   166,
     167,   168,     0,   169,   170,     0,     0,     0,     0,     0,
       0,     0,   171,   172,     0,   173,     0,   174,   175,   176,
       0,   177,     0,   178,   179,     0,   180,   181,   182,   183,
     184,     0,     0,   185,   186,   187,   188,     0,   189,   190,
     191,   192,   193,     0,     0,   194,   195,   196,   197,   198,
       0,   199,   200,   201,   202,     0,   203,   204,   205,     0,
     206,     0,     0,     0,     0,     0,   207,   208,   209,   210,
     211,   212,   213,   214,     0,   215,     0,   216,   217,   218,
     219,   220,     0,   221,     0,     0,   222,   223,   224,   225,
       0,   226,   227,   228,     0,   229,     0,   230,   231,   232,
     233,   234,   235,   236,     0,   237,   238,   239,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,   244,   245,
       0,   246,     0,   247,   248,   249,   250,     0,   251,   252,
     253,     0,   254,   255,   256,   257,   258,   259,     0,     0,
     260,   261,   262,   263,   264,   265,   266,     0,   267,     0,
     268,     0,     0,   269,     0,   270,   271,   272,   273,   274,
       0,   275,     0,   276,     0,     0,   277,   278,   279,     0,
       0,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,     0,   292,   412,   293,   294,   295,   296,
     297,   298,   299,   300,   301,     0,   302,   303,     0,   304,
       0,   305,   306,   307,   308,     0,     0,   309,   413,     0,
       0,   310,   311,     0,     0,   312,     0,     0,   313,   314,
     315,   316,   317,     0,   318,   319,   320,   321,   322,     0,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   352,     0,   353,   354,   355,     0,   356,   357,
     358,   359,     0,   360,   361,     0,   362,   363,   364,   365,
     366,   367,   368,   369,   370,   371,     0,   372,   373,     0,
     374,   375,   376,   377,     0,   378,   379,     0,     0,   380,
     381,   382,   383,     0,   384,   385,   386,   387,   388,     0,
       0,   389,   390,   391,   392,     0,     0,   393,   394,   395,
     396,   397,   398,     0,   399,   400,     0,     0,   401,   402,
     403,   404,   405,   406,     0,     0,     0,   407,   161,   162,
     163,   164,   165,   166,   167,   168,     0,   169,   170,     0,
       0,     0,     0,     0,     0,     0,   171,   172,     0,   173,
     582,   174,   175,   176,   583,  1109,   584,  1110,  1111,     0,
     180,   181,   182,   183,   184,     0,     0,   185,  1112,  1113,
     188,     0,   189,   190,   191,   192,     0,     0,     0,   194,
     195,   196,   197,   198,     0,   199,   200,     0,   202,     0,
     203,   204,   205,   585,   206,     0,     0,     0,     0,     0,
     207,   208,   209,   210,   211,  1114,  1115,   214,     0,   215,
       0,   216,   217,   218,   219,   220,     0,   221,     0,     0,
     222,   797,   224,   225,     0,   226,   227,   228,     0,   229,
       0,   230,   231,   232,     0,   234,   235,     0,     0,   237,
     238,  1116,     0,   240,     0,   241,   586,     0,   587,   242,
     243,     0,   244,     0,     0,   246,     0,   247,   248,   249,
     250,   588,   251,   252,   253,     0,   254,   255,   256,   257,
     258,   259,     0,   589,     0,   261,   262,   263,   264,  1117,
    1118,     0,  1119,     0,   268,   590,   591,   269,   592,   270,
     271,   272,   273,   274,     0,     0,   593,   276,   594,     0,
     277,   278,   279,     0,     0,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,  1120,   595,  1121,     0,
     293,   294,   295,   296,   297,   298,   299,     0,   301,     0,
     302,   303,   596,   304,     0,     0,  1122,   307,   308,     0,
       0,   309,     0,     0,     0,   310,   311,     0,     0,     0,
     597,   598,     0,   314,   315,   316,   317,     0,     0,     0,
     320,   321,   322,     0,   323,   324,   325,   326,   327,   328,
    1123,   330,   331,     0,   332,   333,   334,   335,   336,   337,
     338,   339,   340,     0,   341,   342,   599,   343,   344,     0,
     346,   347,   348,   349,   350,   351,   352,     0,   353,   354,
     355,     0,   356,  1460,   358,   359,   600,   360,  1125,     0,
     362,   363,   364,   365,   366,   367,   368,   369,     0,   371,
       0,   372,   373,     0,   374,   375,   376,   377,     0,  1126,
    1127,     0,     0,   380,     0,   382,     0,     0,   384,   385,
     386,   387,   388,     0,     0,   389,   390,   391,   392,     0,
       0,   393,   394,   395,     0,  1128,   398,   601,   399,   400,
       0,     0,   401,   402,   403,   404,   405,   406,     0,     0,
       0,  1461,   161,   162,   163,   164,   165,   166,   167,   168,
    1943,   169,   170,     0,     0,     0,     0,     0,     0,     0,
     171,   172,     0,   173,     0,   174,   175,   176,     0,   177,
       0,   178,   179,     0,   180,   181,   182,   183,   184,     0,
       0,   185,   186,   187,   188,     0,   189,   190,   191,   192,
     193,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,   201,   202,     0,   203,   204,   205,     0,   206,     0,
       0,     0,     0,     0,   207,   208,   209,   210,   211,   212,
     213,   214,     0,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   223,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,   233,   234,
     235,   236,     0,   237,   238,   239,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,   244,   245,     0,   246,
       0,   247,   248,   249,   250,     0,   251,   252,   253,     0,
     254,   255,   256,   257,   258,   259,     0,     0,   260,   261,
     262,   263,   264,   265,   266,     0,   267,     0,   268,     0,
       0,   269,     0,   270,   271,   272,   273,   274,     0,   275,
       0,   276,     0,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,     0,   292,     0,   293,   294,   295,   296,   297,   298,
     299,   300,   301,     0,   302,   303,     0,   304,     0,   305,
     306,   307,   308,     0,     0,   309,     0,     0,     0,   310,
     311,     0,     0,   312,     0,     0,   313,   314,   315,   316,
     317,     0,   318,   319,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,   329,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,   343,   344,   345,   346,   347,   348,   349,   350,   351,
     352,     0,   353,   354,   355,     0,   356,   357,   358,   359,
       0,   360,   361,     0,   362,   363,   364,   365,   366,   367,
     368,   369,   370,   371,     0,   372,   373,     0,   374,   375,
     376,   377,     0,   378,   379,     0,     0,   380,   381,   382,
     383,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,  1944,     0,   393,   394,   395,   396,   397,
     398,     0,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,   407,   161,   162,   163,   164,
     165,   166,   167,   168,  1948,   169,   170,     0,     0,     0,
       0,     0,     0,     0,   171,   172,     0,   173,     0,   174,
     175,   176,     0,   177,     0,   178,   179,     0,   180,   181,
     182,   183,   184,     0,     0,   185,   186,   187,   188,     0,
     189,   190,   191,   192,   193,     0,     0,   194,   195,   196,
     197,   198,     0,   199,   200,   201,   202,     0,   203,   204,
     205,     0,   206,     0,     0,     0,     0,     0,   207,   208,
     209,   210,   211,   212,   213,   214,     0,   215,     0,   216,
     217,   218,   219,   220,     0,   221,     0,     0,   222,   223,
     224,   225,     0,   226,   227,   228,     0,   229,     0,   230,
     231,   232,   233,   234,   235,   236,     0,   237,   238,   239,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
     244,   245,     0,   246,     0,   247,   248,   249,   250,     0,
     251,   252,   253,     0,   254,   255,   256,   257,   258,   259,
       0,     0,   260,   261,   262,   263,   264,   265,   266,     0,
     267,     0,   268,     0,     0,   269,     0,   270,   271,   272,
     273,   274,     0,   275,     0,   276,     0,     0,   277,   278,
     279,     0,     0,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,     0,   292,     0,   293,   294,
     295,   296,   297,   298,   299,   300,   301,     0,   302,   303,
       0,   304,     0,   305,   306,   307,   308,     0,     0,   309,
       0,     0,     0,   310,   311,     0,     0,   312,     0,     0,
     313,   314,   315,   316,   317,     0,   318,   319,   320,   321,
     322,     0,   323,   324,   325,   326,   327,   328,   329,   330,
     331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,   343,   344,   345,   346,   347,
     348,   349,   350,   351,   352,     0,   353,   354,   355,     0,
     356,   357,   358,   359,     0,   360,   361,     0,   362,   363,
     364,   365,   366,   367,   368,   369,   370,   371,     0,   372,
     373,     0,   374,   375,   376,   377,     0,   378,   379,     0,
       0,   380,   381,   382,   383,     0,   384,   385,   386,   387,
     388,     0,     0,   389,   390,   391,   392,  1949,     0,   393,
     394,   395,   396,   397,   398,     0,   399,   400,     0,     0,
     401,   402,   403,   404,   405,   406,     0,     0,     0,   407,
     161,   162,   163,   164,   165,   166,   167,   168,   527,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
       0,   173,     0,   174,   175,   176,     0,   177,     0,   178,
     179,     0,   180,   181,   182,   183,   184,     0,     0,   185,
     186,   187,   188,     0,   189,   190,   191,   192,   193,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   201,
     202,     0,   203,   204,   205,     0,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,   212,   213,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   236,
       0,   237,   238,   239,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,   244,   245,     0,   246,     0,   247,
     248,   249,   250,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,     0,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,     0,     0,   269,
       0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
       0,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,     0,
     292,     0,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,     0,   304,     0,   305,   306,   307,
     308,     0,     0,   309,     0,     0,     0,   310,   311,     0,
       0,   312,     0,     0,   313,   314,   315,   316,   317,     0,
     318,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   528,     0,   356,   357,   358,   359,     0,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     370,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   529,   379,     0,     0,   530,   381,   382,   383,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,   396,   397,   398,     0,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   407,   161,   162,   163,   164,   165,   166,
     167,   168,   552,   169,   170,     0,     0,     0,     0,     0,
       0,     0,   171,   172,     0,   173,     0,   174,   175,   176,
       0,   177,     0,   178,   179,     0,   180,   181,   182,   183,
     184,     0,     0,   185,   186,   187,   188,     0,   189,   190,
     191,   192,   193,     0,     0,   194,   195,   196,   197,   198,
       0,   199,   200,   201,   202,     0,   203,   204,   205,     0,
     206,     0,     0,     0,     0,     0,   207,   208,   209,   210,
     211,   212,   213,   214,     0,   215,     0,   216,   217,   218,
     219,   220,     0,   221,     0,     0,   222,   223,   224,   225,
       0,   226,   227,   228,     0,   229,     0,   230,   231,   232,
     233,   234,   235,   236,     0,   237,   238,   239,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,   244,   245,
       0,   246,     0,   247,   248,   249,   250,     0,   251,   252,
     253,     0,   254,   255,   256,   257,   258,   259,     0,     0,
     260,   261,   262,   263,   264,   265,   266,     0,   267,     0,
     268,     0,     0,   269,     0,   270,   271,   272,   273,   274,
       0,   275,     0,   276,     0,     0,   277,   278,   279,     0,
       0,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,     0,   292,     0,   293,   294,   295,   296,
     297,   298,   299,   300,   301,     0,   302,   303,     0,   304,
       0,   305,   306,   307,   308,     0,     0,   309,     0,     0,
       0,   310,   311,     0,     0,   312,     0,     0,   313,   314,
     315,   316,   317,     0,   318,   319,   320,   321,   322,     0,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   352,     0,   353,   354,   553,     0,   356,   357,
     358,   359,     0,   360,   361,     0,   362,   363,   364,   365,
     366,   367,   368,   369,   370,   371,     0,   372,   373,     0,
     374,   375,   376,   377,     0,   554,   379,     0,     0,   555,
     381,   382,   383,     0,   384,   385,   386,   387,   388,     0,
       0,   389,   390,   391,   392,     0,     0,   393,   394,   395,
     396,   397,   398,     0,   399,   400,     0,     0,   401,   402,
     403,   404,   405,   406,     0,     0,     0,   407,   161,   162,
     163,   164,   165,   166,   167,   168,     0,   169,   170,     0,
       0,     0,     0,     0,     0,     0,   171,   172,     0,   173,
     882,   174,   175,   176,     0,   177,     0,   178,   179,     0,
     180,   181,   182,   183,   184,     0,     0,   185,   186,   187,
     883,     0,   189,   190,   191,   192,   193,     0,     0,   194,
     195,   196,   197,   198,     0,   199,   200,   201,   202,     0,
     203,   204,   205,     0,   206,     0,     0,     0,     0,     0,
     207,   208,   209,   210,   211,   212,   213,   214,     0,   215,
       0,   216,   217,   218,   219,   220,     0,   221,     0,     0,
     222,   223,   224,   225,     0,   226,   227,   228,     0,   229,
       0,   230,   231,   232,   233,   234,   235,   236,     0,   237,
     238,   239,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,   244,   245,     0,   246,     0,   247,   248,   249,
     250,     0,   251,   252,   253,     0,   254,   255,   256,   257,
     258,   259,     0,     0,   260,   261,   262,   263,   264,   265,
     266,     0,   267,     0,   268,     0,     0,   269,     0,   270,
     271,   272,   273,   274,     0,   275,     0,   276,     0,     0,
     277,   278,   279,     0,     0,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   545,   291,     0,   292,     0,
     293,   294,   295,   296,   297,   298,   299,   300,   301,     0,
     302,   303,     0,   304,     0,   305,   306,   307,   308,     0,
       0,   309,     0,     0,     0,   310,   311,     0,     0,   312,
       0,     0,   313,   314,   315,   316,   317,     0,   318,   319,
     320,   321,   322,     0,   323,   324,   325,   326,   327,   328,
     329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,   546,   344,   345,
     346,   347,   348,   349,   350,   351,   352,     0,   353,   354,
     874,     0,   356,   357,   358,   359,     0,   360,   361,     0,
     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
       0,   372,   373,     0,   374,   375,   376,   377,     0,   548,
     379,     0,     0,   549,   381,   382,   383,     0,   384,   385,
     386,   387,   388,     0,     0,   389,   390,   391,   392,     0,
       0,   393,   394,   395,   396,   397,   398,     0,   399,   400,
       0,     0,   401,   402,   403,   404,   405,   406,     0,     0,
       0,   407,   161,   162,   163,   164,   165,   166,   167,   168,
       0,   169,   170,     0,     0,     0,     0,     0,  2059,     0,
     171,   172,     0,   173,     0,   174,   175,   176,     0,   177,
       0,   178,   179,     0,   180,   181,   182,   183,   184,     0,
       0,   185,   186,   187,   188,     0,   189,   190,   191,   192,
     193,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,   201,   202,     0,   203,   204,   205,     0,   206,     0,
       0,     0,     0,     0,   207,   208,   209,   210,   211,   212,
     213,   214,     0,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   223,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,   233,   234,
     235,   236,     0,   237,   238,   239,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,   244,   245,     0,   246,
       0,   247,   248,   249,   250,     0,   251,   252,   253,     0,
     254,   255,   256,   257,   258,   259,     0,     0,   260,   261,
     262,   263,   264,   265,   266,     0,   267,     0,   268,     0,
       0,   269,     0,   270,   271,   272,   273,   274,     0,   275,
       0,   276,     0,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,     0,   292,     0,   293,   294,   295,   296,   297,   298,
     299,   300,   301,     0,   302,   303,     0,   304,     0,   305,
     306,   307,   308,     0,     0,   309,     0,     0,     0,   310,
     311,     0,     0,   312,     0,     0,   313,   314,   315,   316,
     317,     0,   318,   319,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,   329,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,   343,   344,   345,   346,   347,   348,   349,   350,   351,
     352,     0,   353,   354,   355,     0,   356,   357,   358,   359,
       0,   360,   361,     0,   362,   363,   364,   365,   366,   367,
     368,   369,   370,   371,     0,   372,   373,     0,   374,   375,
     376,   377,     0,   378,   379,     0,     0,   380,   381,   382,
     383,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,     0,     0,   393,   394,   395,   396,   397,
     398,     0,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,   407,   161,   162,   163,   164,
     165,   166,   167,   168,     0,   169,   170,     0,     0,     0,
       0,     0,  2072,     0,   171,   172,     0,   173,     0,   174,
     175,   176,     0,   177,     0,   178,   179,     0,   180,   181,
     182,   183,   184,     0,     0,   185,   186,   187,   188,     0,
     189,   190,   191,   192,   193,     0,     0,   194,   195,   196,
     197,   198,     0,   199,   200,   201,   202,     0,   203,   204,
     205,     0,   206,     0,     0,     0,     0,     0,   207,   208,
     209,   210,   211,   212,   213,   214,     0,   215,     0,   216,
     217,   218,   219,   220,     0,   221,     0,     0,   222,   223,
     224,   225,     0,   226,   227,   228,     0,   229,     0,   230,
     231,   232,   233,   234,   235,   236,     0,   237,   238,   239,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
     244,   245,     0,   246,     0,   247,   248,   249,   250,     0,
     251,   252,   253,     0,   254,   255,   256,   257,   258,   259,
       0,     0,   260,   261,   262,   263,   264,   265,   266,     0,
     267,     0,   268,     0,     0,   269,     0,   270,   271,   272,
     273,   274,     0,   275,     0,   276,     0,     0,   277,   278,
     279,     0,     0,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,     0,   292,     0,   293,   294,
     295,   296,   297,   298,   299,   300,   301,     0,   302,   303,
       0,   304,     0,   305,   306,   307,   308,     0,     0,   309,
       0,     0,     0,   310,   311,     0,     0,   312,     0,     0,
     313,   314,   315,   316,   317,     0,   318,   319,   320,   321,
     322,     0,   323,   324,   325,   326,   327,   328,   329,   330,
     331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,   343,   344,   345,   346,   347,
     348,   349,   350,   351,   352,     0,   353,   354,   355,     0,
     356,   357,   358,   359,     0,   360,   361,     0,   362,   363,
     364,   365,   366,   367,   368,   369,   370,   371,     0,   372,
     373,     0,   374,   375,   376,   377,     0,   378,   379,     0,
       0,   380,   381,   382,   383,     0,   384,   385,   386,   387,
     388,     0,     0,   389,   390,   391,   392,     0,     0,   393,
     394,   395,   396,   397,   398,     0,   399,   400,     0,     0,
     401,   402,   403,   404,   405,   406,     0,     0,     0,   407,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
       0,   173,     0,   174,   175,   176,     0,   177,     0,   178,
     179,     0,   180,   181,   182,   183,   184,     0,     0,   185,
     186,   187,   188,     0,   189,   190,   191,   192,   193,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   201,
     202,     0,   203,   204,   205,     0,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,   212,   213,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   236,
       0,   237,   238,   239,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,   244,   245,  2095,   246,     0,   247,
     248,   249,   250,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,     0,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,     0,     0,   269,
       0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
       0,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,     0,
     292,     0,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,     0,   304,     0,   305,   306,   307,
     308,     0,     0,   309,     0,     0,     0,   310,   311,     0,
       0,   312,     0,     0,   313,   314,   315,   316,   317,     0,
     318,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,   357,   358,   359,     0,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     370,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   378,   379,     0,     0,   380,   381,   382,   383,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,   396,   397,   398,     0,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   407,   161,   162,   163,   164,   165,   166,
     167,   168,     0,   169,   170,     0,     0,     0,     0,     0,
       0,     0,   171,   172,     0,   173,     0,   174,   175,   176,
       0,   177,     0,   178,   179,     0,   180,   181,   182,   183,
     184,     0,     0,   185,   186,   187,   188,     0,   189,   190,
     191,   192,   193,     0,     0,   194,   195,   196,   197,   198,
       0,   199,   200,   201,   202,     0,   203,   204,   205,     0,
     206,     0,     0,     0,     0,     0,   207,   208,   209,   210,
     211,   212,   213,   214,  2583,   215,     0,   216,   217,   218,
     219,   220,     0,   221,     0,     0,   222,   223,   224,   225,
       0,   226,   227,   228,     0,   229,     0,   230,   231,   232,
     233,   234,   235,   236,     0,   237,   238,   239,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,   244,   245,
       0,   246,     0,   247,   248,   249,   250,     0,   251,   252,
     253,     0,   254,   255,   256,   257,   258,   259,     0,     0,
     260,   261,   262,   263,   264,   265,   266,     0,   267,     0,
     268,     0,     0,   269,     0,   270,   271,   272,   273,   274,
       0,   275,     0,   276,     0,     0,   277,   278,   279,     0,
       0,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,     0,   292,     0,   293,   294,   295,   296,
     297,   298,   299,   300,   301,     0,   302,   303,     0,   304,
       0,   305,   306,   307,   308,     0,     0,   309,     0,     0,
       0,   310,   311,     0,     0,   312,     0,     0,   313,   314,
     315,   316,   317,     0,   318,   319,   320,   321,   322,     0,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   352,     0,   353,   354,   355,     0,   356,   357,
     358,   359,     0,   360,   361,     0,   362,   363,   364,   365,
     366,   367,   368,   369,   370,   371,     0,   372,   373,     0,
     374,   375,   376,   377,     0,   378,   379,     0,     0,   380,
     381,   382,   383,     0,   384,   385,   386,   387,   388,     0,
       0,   389,   390,   391,   392,     0,     0,   393,   394,   395,
     396,   397,   398,     0,   399,   400,     0,     0,   401,   402,
     403,   404,   405,   406,     0,     0,     0,   407,   161,   162,
     163,   164,   165,   166,   167,   168,     0,   169,   170,     0,
       0,     0,     0,     0,     0,     0,   171,   172,     0,   173,
       0,   174,   175,   176,     0,   177,     0,   178,   179,     0,
     180,   181,   182,   183,   184,     0,     0,   185,   186,   187,
     188,     0,   189,   190,   191,   192,   193,     0,     0,   194,
     195,   196,   197,   198,     0,   199,   200,   201,   202,     0,
     203,   204,   205,     0,   206,     0,     0,     0,     0,     0,
     207,   208,   209,   210,   211,   212,   213,   214,  2585,   215,
       0,   216,   217,   218,   219,   220,     0,   221,     0,     0,
     222,   223,   224,   225,     0,   226,   227,   228,     0,   229,
       0,   230,   231,   232,   233,   234,   235,   236,     0,   237,
     238,   239,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,   244,   245,     0,   246,     0,   247,   248,   249,
     250,     0,   251,   252,   253,     0,   254,   255,   256,   257,
     258,   259,     0,     0,   260,   261,   262,   263,   264,   265,
     266,     0,   267,     0,   268,     0,     0,   269,     0,   270,
     271,   272,   273,   274,     0,   275,     0,   276,     0,     0,
     277,   278,   279,     0,     0,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,     0,   292,     0,
     293,   294,   295,   296,   297,   298,   299,   300,   301,     0,
     302,   303,     0,   304,     0,   305,   306,   307,   308,     0,
       0,   309,     0,     0,     0,   310,   311,     0,     0,   312,
       0,     0,   313,   314,   315,   316,   317,     0,   318,   319,
     320,   321,   322,     0,   323,   324,   325,   326,   327,   328,
     329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,   343,   344,   345,
     346,   347,   348,   349,   350,   351,   352,     0,   353,   354,
     355,     0,   356,   357,   358,   359,     0,   360,   361,     0,
     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
       0,   372,   373,     0,   374,   375,   376,   377,     0,   378,
     379,     0,     0,   380,   381,   382,   383,     0,   384,   385,
     386,   387,   388,     0,     0,   389,   390,   391,   392,     0,
       0,   393,   394,   395,   396,   397,   398,     0,   399,   400,
       0,     0,   401,   402,   403,   404,   405,   406,     0,     0,
       0,   407,   161,   162,   163,   164,   165,   166,   167,   168,
       0,   169,   170,     0,     0,     0,     0,     0,     0,     0,
     171,   172,     0,   173,     0,   174,   175,   176,     0,   177,
       0,   178,   179,     0,   180,   181,   182,   183,   184,     0,
       0,   185,   186,   187,   188,     0,   189,   190,   191,   192,
     193,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,   201,   202,     0,   203,   204,   205,     0,   206,     0,
       0,     0,     0,     0,   207,   208,   209,   210,   211,   212,
     213,   214,  2587,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   223,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,   233,   234,
     235,   236,     0,   237,   238,   239,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,   244,   245,     0,   246,
       0,   247,   248,   249,   250,     0,   251,   252,   253,     0,
     254,   255,   256,   257,   258,   259,     0,     0,   260,   261,
     262,   263,   264,   265,   266,     0,   267,     0,   268,     0,
       0,   269,     0,   270,   271,   272,   273,   274,     0,   275,
       0,   276,     0,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,     0,   292,     0,   293,   294,   295,   296,   297,   298,
     299,   300,   301,     0,   302,   303,     0,   304,     0,   305,
     306,   307,   308,     0,     0,   309,     0,     0,     0,   310,
     311,     0,     0,   312,     0,     0,   313,   314,   315,   316,
     317,     0,   318,   319,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,   329,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,   343,   344,   345,   346,   347,   348,   349,   350,   351,
     352,     0,   353,   354,   355,     0,   356,   357,   358,   359,
       0,   360,   361,     0,   362,   363,   364,   365,   366,   367,
     368,   369,   370,   371,     0,   372,   373,     0,   374,   375,
     376,   377,     0,   378,   379,     0,     0,   380,   381,   382,
     383,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,     0,     0,   393,   394,   395,   396,   397,
     398,     0,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,   407,   161,   162,   163,   164,
     165,   166,   167,   168,     0,   169,   170,     0,     0,     0,
       0,     0,     0,     0,   171,   172,     0,   173,     0,   174,
     175,   176,     0,   177,     0,   178,   179,     0,   180,   181,
     182,   183,   184,     0,     0,   185,   186,   187,   188,     0,
     189,   190,   191,   192,   193,     0,     0,   194,   195,   196,
     197,   198,     0,   199,   200,   201,   202,     0,   203,   204,
     205,     0,   206,     0,     0,     0,     0,     0,   207,   208,
     209,   210,   211,   212,   213,   214,     0,   215,     0,   216,
     217,   218,   219,   220,     0,   221,     0,     0,   222,   223,
     224,   225,     0,   226,   227,   228,     0,   229,     0,   230,
     231,   232,   233,   234,   235,   236,     0,   237,   238,   239,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
     244,   245,     0,   246,     0,   247,   248,   249,   250,     0,
     251,   252,   253,     0,   254,   255,   256,   257,   258,   259,
       0,     0,   260,   261,   262,   263,   264,   265,   266,     0,
     267,     0,   268,     0,     0,   269,     0,   270,   271,   272,
     273,   274,     0,   275,     0,   276,     0,     0,   277,   278,
     279,     0,     0,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,     0,   292,     0,   293,   294,
     295,   296,   297,   298,   299,   300,   301,     0,   302,   303,
       0,   304,     0,   305,   306,   307,   308,     0,     0,   309,
       0,     0,     0,   310,   311,     0,     0,   312,     0,     0,
     313,   314,   315,   316,   317,     0,   318,   319,   320,   321,
     322,     0,   323,   324,   325,   326,   327,   328,   329,   330,
     331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,   343,   344,   345,   346,   347,
     348,   349,   350,   351,   352,     0,   353,   354,   355,     0,
     356,   357,   358,   359,     0,   360,   361,     0,   362,   363,
     364,   365,   366,   367,   368,   369,   370,   371,     0,   372,
     373,     0,   374,   375,   376,   377,     0,   378,   379,     0,
       0,   380,   381,   382,   383,     0,   384,   385,   386,   387,
     388,     0,     0,   389,   390,   391,   392,     0,  2847,   393,
     394,   395,   396,   397,   398,     0,   399,   400,     0,     0,
     401,   402,   403,   404,   405,   406,     0,     0,     0,   407,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
       0,   173,     0,   174,   175,   176,     0,   177,     0,   178,
     179,     0,   180,   181,   182,   183,   184,     0,     0,   185,
     186,   187,   188,     0,   189,   190,   191,   192,   193,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   201,
     202,     0,   203,   204,   205,     0,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,   212,   213,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   236,
       0,   237,   238,   239,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,   244,   245,     0,   246,     0,   247,
     248,   249,   250,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,     0,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,     0,     0,   269,
       0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
       0,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,     0,
     292,     0,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,     0,   304,     0,   305,   306,   307,
     308,     0,     0,   309,     0,     0,     0,   310,   311,     0,
       0,   312,     0,     0,   313,   314,   315,   316,   317,     0,
     318,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,   357,   358,   359,     0,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     370,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   378,   379,     0,     0,   380,   381,   382,   383,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,   396,   397,   398,     0,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   407,   161,   162,   163,   164,   165,   166,
     167,   168,     0,   169,   170,     0,     0,     0,     0,     0,
       0,     0,   171,   172,     0,   173,     0,   174,   175,   176,
       0,   177,     0,   178,   179,     0,   180,   181,   182,   183,
     184,     0,     0,   185,   186,   187,   188,     0,   189,   190,
     191,   192,   193,     0,     0,   194,   195,   196,   197,   198,
       0,   199,   200,   201,   202,     0,   203,   204,   205,     0,
     206,     0,     0,     0,     0,     0,   207,   208,   209,   210,
     211,   212,   213,   214,     0,   215,     0,   216,   217,   218,
     219,   220,     0,   221,     0,     0,   222,   223,   224,   225,
       0,   226,   227,   228,     0,   229,     0,   230,   231,   232,
     233,   234,   235,   236,     0,   237,   238,   239,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,   244,   245,
       0,   246,     0,   247,   248,   249,   250,     0,   251,   252,
     253,     0,   254,   255,   256,   257,   258,   259,     0,     0,
     260,   261,   262,   263,   264,   265,   266,     0,   267,     0,
     268,     0,     0,   269,     0,   270,   271,   272,   273,   274,
       0,   275,     0,   276,     0,     0,   277,   278,   279,     0,
       0,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,     0,   292,     0,   293,   294,   295,   296,
     297,   298,   299,   300,   301,     0,   302,   303,     0,   304,
       0,   305,   306,   307,   308,     0,     0,   309,     0,     0,
       0,   310,   311,     0,     0,   312,     0,     0,   313,   314,
     315,   316,   317,     0,   318,   319,   320,   452,   322,     0,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   352,     0,   353,   354,   355,     0,   356,   357,
     358,   359,     0,   360,   361,     0,   362,   363,   364,   365,
     366,   367,   368,   369,   370,   371,     0,   372,   373,     0,
     374,   375,   376,   377,     0,   378,   379,     0,     0,   380,
     381,   382,   383,     0,   384,   385,   386,   387,   388,     0,
       0,   389,   390,   391,   392,     0,     0,   393,   394,   395,
     396,   397,   398,     0,   399,   400,     0,     0,   401,   402,
     403,   404,   405,   406,     0,     0,     0,   407,   161,   162,
     163,   164,   165,   166,   167,   168,     0,   169,   170,     0,
       0,     0,     0,     0,     0,     0,   171,   172,     0,   173,
       0,   174,   175,   176,     0,   177,     0,   178,   179,     0,
     180,   181,   182,   183,   184,     0,     0,   185,   186,   187,
     188,     0,   189,   190,   191,   192,   193,     0,     0,   194,
     195,   196,   197,   198,     0,   199,   200,   201,   202,     0,
     203,   204,   205,     0,   206,     0,     0,     0,     0,     0,
     207,   208,   209,   210,   211,   212,   213,   214,     0,   215,
       0,   216,   217,   218,   219,   220,     0,   221,     0,     0,
     222,   223,   224,   225,     0,   226,   227,   228,     0,   229,
       0,   230,   231,   232,   233,   234,   235,   236,     0,   237,
     238,   239,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,   244,   245,     0,   246,     0,   247,   248,   249,
     250,     0,   251,   252,   253,     0,   254,   255,   256,   257,
     258,   259,     0,     0,   260,   261,   262,   263,   264,   265,
     266,     0,   267,     0,   268,     0,     0,   269,     0,   270,
     271,   272,   273,   274,     0,   275,     0,   276,     0,     0,
     277,   278,   279,     0,     0,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,     0,   292,     0,
     293,   294,   295,   296,   297,   298,   299,   300,   301,     0,
     302,   303,     0,   304,     0,   305,   306,   307,   308,     0,
       0,   309,     0,     0,     0,   310,   311,     0,     0,   312,
       0,     0,   313,   314,   315,   316,   317,     0,   318,   319,
     320,   321,   322,     0,   323,   324,   325,   326,   327,   328,
     329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,   343,   344,   345,
     346,   347,   348,   349,   350,   351,   352,     0,   353,   354,
     355,     0,   356,   357,   358,   359,     0,   360,   361,     0,
     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
       0,   372,   373,     0,   374,   375,   376,   377,     0,   378,
     379,     0,     0,   517,   381,   382,   383,     0,   384,   385,
     386,   387,   388,     0,     0,   389,   390,   391,   392,     0,
       0,   393,   394,   395,   396,   397,   398,     0,   399,   400,
       0,     0,   401,   402,   403,   404,   405,   406,     0,     0,
       0,   407,   161,   162,   163,   164,   165,   166,   167,   168,
       0,   169,   170,     0,     0,     0,     0,     0,     0,     0,
     171,   172,     0,   173,     0,   174,   175,   176,     0,   177,
       0,   178,   179,     0,   180,   181,   182,   183,   184,     0,
       0,   185,   186,   187,   188,     0,   189,   190,   191,   192,
     193,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,   201,   202,     0,   203,   204,   205,     0,   206,     0,
       0,     0,     0,     0,   207,   208,   209,   210,   211,   212,
     213,   214,     0,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   223,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,   233,   234,
     235,   236,     0,   237,   238,   239,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,   244,   245,     0,   246,
       0,   247,   248,   249,   250,     0,   251,   252,   253,     0,
     254,   255,   256,   257,   258,   259,     0,     0,   260,   261,
     262,   263,   264,   265,   266,     0,   267,     0,   268,     0,
       0,   269,     0,   270,   271,   272,   273,   274,     0,   275,
       0,   276,     0,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,     0,   292,     0,   293,   294,   295,   296,   297,   298,
     299,   300,   301,     0,   302,   303,     0,   304,     0,   305,
     306,   307,   308,     0,     0,   309,     0,     0,     0,   310,
     311,     0,     0,   312,     0,     0,   313,   314,   315,   316,
     317,     0,   318,   319,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,   329,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,   343,   344,   345,   346,   347,   525,   349,   350,   351,
     352,     0,   353,   354,   355,     0,   356,   357,   358,   359,
       0,   360,   361,     0,   362,   363,   364,   365,   366,   367,
     368,   369,   370,   371,     0,   372,   373,     0,   374,   375,
     376,   377,     0,   378,   379,     0,     0,   380,   381,   382,
     383,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,     0,     0,   393,   394,   395,   396,   397,
     398,     0,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,   407,   161,   162,   163,   164,
     165,   166,   167,   168,     0,   169,   170,     0,     0,     0,
       0,     0,     0,     0,   171,   172,     0,   173,     0,   174,
     175,   176,     0,   177,     0,   178,   179,     0,   180,   181,
     182,   183,   184,     0,     0,   185,   186,   187,   188,     0,
     189,   190,   191,   192,   193,     0,     0,   194,   195,   196,
     197,   198,     0,   543,   200,   201,   202,     0,   203,   204,
     205,     0,   206,     0,     0,     0,     0,     0,   207,   208,
     209,   210,   211,   212,   213,   214,     0,   215,     0,   216,
     217,   218,   219,   220,     0,   221,     0,     0,   222,   223,
     224,   225,     0,   226,   227,   228,     0,   229,     0,   230,
     231,   232,   233,   234,   235,   236,     0,   237,   238,   239,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
     244,   245,     0,   246,     0,   247,   248,   249,   250,     0,
     251,   252,   253,     0,   254,   255,   256,   257,   258,   259,
       0,     0,   260,   261,   262,   263,   264,   265,   266,     0,
     267,     0,   268,     0,     0,   269,     0,   270,   271,   272,
     273,   274,     0,   275,     0,   276,     0,     0,   277,   278,
     544,     0,     0,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   545,   291,     0,   292,     0,   293,   294,
     295,   296,   297,   298,   299,   300,   301,     0,   302,   303,
       0,   304,     0,   305,   306,   307,   308,     0,     0,   309,
       0,     0,     0,   310,   311,     0,     0,   312,     0,     0,
     313,   314,   315,   316,   317,     0,   318,   319,   320,   321,
     322,     0,   323,   324,   325,   326,   327,   328,   329,   330,
     331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,   546,   344,   345,   346,   347,
     348,   349,   350,   351,   352,     0,   353,   354,   547,     0,
     356,   357,   358,   359,     0,   360,   361,     0,   362,   363,
     364,   365,   366,   367,   368,   369,   370,   371,     0,   372,
     373,     0,   374,   375,   376,   377,     0,   548,   379,     0,
       0,   549,   381,   382,   383,     0,   384,   385,   386,   387,
     388,     0,     0,   389,   390,   391,   392,     0,     0,   393,
     394,   395,   396,   397,   398,     0,   399,   400,     0,     0,
     401,   402,   403,   404,   405,   406,     0,     0,     0,   407,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
       0,   173,     0,   174,   175,   176,     0,   177,     0,   178,
     179,     0,   180,   181,   182,   183,   184,     0,     0,   185,
     186,   187,   188,     0,   189,   190,   191,   192,   193,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   201,
     202,     0,   203,   204,   205,     0,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,   212,   213,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   236,
       0,   237,   238,   239,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,   244,   245,     0,   246,     0,   247,
     248,   249,   715,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,     0,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,     0,     0,   269,
       0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
       0,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,     0,
     292,     0,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,     0,   304,     0,   305,   306,   307,
     308,     0,     0,   309,     0,     0,     0,   310,   311,     0,
       0,   312,     0,     0,   313,   314,   315,   316,   317,     0,
     318,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,   357,   358,   359,     0,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     370,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   378,   379,     0,     0,   380,   381,   382,   383,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,   396,   397,   398,     0,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   407,   161,   162,   163,   164,   165,   166,
     167,   168,     0,   169,   170,     0,     0,     0,     0,     0,
       0,     0,   171,   172,     0,   173,     0,   174,   175,   176,
       0,   177,     0,   178,   179,     0,   180,   181,   182,   183,
     184,     0,     0,   185,   186,   187,   188,     0,   189,   190,
     191,   192,   193,     0,     0,   194,   195,   196,   197,   198,
       0,   199,   200,   201,   202,     0,   203,   204,   205,     0,
     206,     0,     0,     0,     0,     0,   207,   208,   209,   210,
     211,   212,   213,   214,     0,   215,     0,   216,   217,   218,
     219,   220,     0,   221,     0,     0,   222,   223,   224,   225,
       0,   226,   227,   228,     0,   229,     0,   230,   231,   232,
     233,   234,   235,   236,     0,   237,   238,   239,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,   244,   245,
       0,   246,     0,   247,   248,   249,   719,     0,   251,   252,
     253,     0,   254,   255,   256,   257,   258,   259,     0,     0,
     260,   261,   262,   263,   264,   265,   266,     0,   267,     0,
     268,     0,     0,   269,     0,   270,   271,   272,   273,   274,
       0,   275,     0,   276,     0,     0,   277,   278,   279,     0,
       0,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,     0,   292,     0,   293,   294,   295,   296,
     297,   298,   299,   300,   301,     0,   302,   303,     0,   304,
       0,   305,   306,   307,   308,     0,     0,   309,     0,     0,
       0,   310,   311,     0,     0,   312,     0,     0,   313,   314,
     315,   316,   317,     0,   318,   319,   320,   321,   322,     0,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   352,     0,   353,   354,   355,     0,   356,   357,
     358,   359,     0,   360,   361,     0,   362,   363,   364,   365,
     366,   367,   368,   369,   370,   371,     0,   372,   373,     0,
     374,   375,   376,   377,     0,   378,   379,     0,     0,   380,
     381,   382,   383,     0,   384,   385,   386,   387,   388,     0,
       0,   389,   390,   391,   392,     0,     0,   393,   394,   395,
     396,   397,   398,     0,   399,   400,     0,     0,   401,   402,
     403,   404,   405,   406,     0,     0,     0,   407,   161,   162,
     163,   164,   165,   166,   167,   168,     0,   169,   170,     0,
       0,     0,     0,     0,     0,     0,   171,   172,     0,   173,
       0,   174,   175,   176,     0,   177,     0,   178,   179,     0,
     180,   181,   182,   183,   184,     0,     0,   185,   186,   187,
     188,     0,   189,   190,   191,   192,   193,     0,     0,   194,
     195,   196,   197,   198,     0,   199,   200,   201,   202,     0,
     203,   204,   205,     0,   206,     0,     0,     0,     0,     0,
     207,   208,   209,   210,   211,   212,   213,   214,     0,   215,
       0,   216,   217,   218,   219,   220,     0,   221,     0,     0,
     222,   223,   224,   225,     0,   226,   227,   228,     0,   229,
       0,   230,   231,   232,   233,   234,   235,   236,     0,   237,
     238,   239,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,   244,   245,     0,   246,     0,   247,   248,   249,
     726,     0,   251,   252,   253,     0,   254,   255,   256,   257,
     258,   259,     0,     0,   260,   261,   262,   263,   264,   265,
     266,     0,   267,     0,   268,     0,     0,   269,     0,   270,
     271,   272,   273,   274,     0,   275,     0,   276,     0,     0,
     277,   278,   279,     0,     0,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,     0,   292,     0,
     293,   294,   295,   296,   297,   298,   299,   300,   301,     0,
     302,   303,     0,   304,     0,   305,   306,   307,   308,     0,
       0,   309,     0,     0,     0,   310,   311,     0,     0,   312,
       0,     0,   313,   314,   315,   316,   317,     0,   318,   319,
     320,   321,   322,     0,   323,   324,   325,   326,   327,   328,
     329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,   343,   344,   345,
     346,   347,   348,   349,   350,   351,   352,     0,   353,   354,
     355,     0,   356,   357,   358,   359,     0,   360,   361,     0,
     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
       0,   372,   373,     0,   374,   375,   376,   377,     0,   378,
     379,     0,     0,   380,   381,   382,   383,     0,   384,   385,
     386,   387,   388,     0,     0,   389,   390,   391,   392,     0,
       0,   393,   394,   395,   396,   397,   398,     0,   399,   400,
       0,     0,   401,   402,   403,   404,   405,   406,     0,     0,
       0,   407,   161,   162,   163,   164,   165,   166,   167,   168,
       0,   169,   170,     0,     0,     0,     0,     0,     0,     0,
     171,   172,     0,   173,     0,   174,   175,   176,     0,   177,
       0,   178,   179,     0,   180,   181,   182,   183,   184,     0,
       0,   185,   186,   187,   188,     0,   189,   190,   191,   192,
     193,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,   201,   202,     0,   203,   204,   205,     0,   206,     0,
       0,     0,     0,     0,   207,   208,   209,   210,   211,   212,
     213,   214,     0,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   223,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,   233,   234,
     235,   236,     0,   237,   238,   239,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,   244,   245,     0,   246,
       0,   247,   248,   249,   728,     0,   251,   252,   253,     0,
     254,   255,   256,   257,   258,   259,     0,     0,   260,   261,
     262,   263,   264,   265,   266,     0,   267,     0,   268,     0,
       0,   269,     0,   270,   271,   272,   273,   274,     0,   275,
       0,   276,     0,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,     0,   292,     0,   293,   294,   295,   296,   297,   298,
     299,   300,   301,     0,   302,   303,     0,   304,     0,   305,
     306,   307,   308,     0,     0,   309,     0,     0,     0,   310,
     311,     0,     0,   312,     0,     0,   313,   314,   315,   316,
     317,     0,   318,   319,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,   329,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,   343,   344,   345,   346,   347,   348,   349,   350,   351,
     352,     0,   353,   354,   355,     0,   356,   357,   358,   359,
       0,   360,   361,     0,   362,   363,   364,   365,   366,   367,
     368,   369,   370,   371,     0,   372,   373,     0,   374,   375,
     376,   377,     0,   378,   379,     0,     0,   380,   381,   382,
     383,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,     0,     0,   393,   394,   395,   396,   397,
     398,     0,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,   407,   161,   162,   163,   164,
     165,   166,   167,   168,     0,   169,   170,     0,     0,     0,
       0,     0,     0,     0,   171,   172,     0,   173,     0,   174,
     175,   176,     0,   177,     0,   178,   179,     0,   180,   181,
     182,   183,   184,     0,     0,   185,   186,   187,   188,     0,
     189,   190,   191,   192,   193,     0,     0,   194,   195,   196,
     197,   198,     0,   199,   200,   201,   202,     0,   203,   204,
     205,     0,   206,     0,     0,     0,     0,     0,   207,   208,
     209,   210,   211,   212,   213,   214,     0,   215,     0,   216,
     217,   218,   219,   220,     0,   221,     0,     0,   222,   223,
     224,   225,     0,   226,   227,   228,     0,   229,     0,   230,
     231,   232,   233,   234,   235,   236,     0,   237,   238,   239,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
     244,   245,     0,   246,     0,   247,   248,   249,   730,     0,
     251,   252,   253,     0,   254,   255,   256,   257,   258,   259,
       0,     0,   260,   261,   262,   263,   264,   265,   266,     0,
     267,     0,   268,     0,     0,   269,     0,   270,   271,   272,
     273,   274,     0,   275,     0,   276,     0,     0,   277,   278,
     279,     0,     0,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,     0,   292,     0,   293,   294,
     295,   296,   297,   298,   299,   300,   301,     0,   302,   303,
       0,   304,     0,   305,   306,   307,   308,     0,     0,   309,
       0,     0,     0,   310,   311,     0,     0,   312,     0,     0,
     313,   314,   315,   316,   317,     0,   318,   319,   320,   321,
     322,     0,   323,   324,   325,   326,   327,   328,   329,   330,
     331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,   343,   344,   345,   346,   347,
     348,   349,   350,   351,   352,     0,   353,   354,   355,     0,
     356,   357,   358,   359,     0,   360,   361,     0,   362,   363,
     364,   365,   366,   367,   368,   369,   370,   371,     0,   372,
     373,     0,   374,   375,   376,   377,     0,   378,   379,     0,
       0,   380,   381,   382,   383,     0,   384,   385,   386,   387,
     388,     0,     0,   389,   390,   391,   392,     0,     0,   393,
     394,   395,   396,   397,   398,     0,   399,   400,     0,     0,
     401,   402,   403,   404,   405,   406,     0,     0,     0,   407,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
       0,   173,     0,   174,   175,   176,     0,   177,     0,   178,
     179,     0,   180,   181,   182,   183,   184,     0,     0,   185,
     186,   187,   188,     0,   189,   190,   191,   192,   193,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,   201,
     202,     0,   203,   204,   205,     0,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,   212,   213,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   236,
       0,   237,   238,   239,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,   244,   245,     0,   246,     0,   247,
     248,   249,   732,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,     0,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,     0,     0,   269,
       0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
       0,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,     0,
     292,     0,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,     0,   304,     0,   305,   306,   307,
     308,     0,     0,   309,     0,     0,     0,   310,   311,     0,
       0,   312,     0,     0,   313,   314,   315,   316,   317,     0,
     318,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,   357,   358,   359,     0,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     370,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   378,   379,     0,     0,   380,   381,   382,   383,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,   396,   397,   398,     0,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   407,   161,   162,   163,   164,   165,   166,
     167,   168,     0,   169,   170,     0,     0,     0,     0,     0,
       0,     0,   171,   172,     0,   173,     0,   174,   175,   176,
       0,   177,     0,   178,   179,     0,   180,   181,   182,   183,
     184,     0,     0,   185,   186,   187,   188,     0,   189,   190,
     191,   192,   193,     0,     0,   194,   195,   196,   197,   198,
       0,   199,   200,   201,   202,     0,   203,   204,   205,     0,
     206,     0,     0,     0,     0,     0,   207,   208,   209,   210,
     211,   212,   213,   214,     0,   215,     0,   216,   217,   218,
     219,   220,     0,   221,     0,     0,   222,   223,   224,   225,
       0,   226,   227,   228,     0,   229,     0,   230,   231,   232,
     233,   234,   235,   236,     0,   237,   238,   239,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,   244,   245,
       0,   246,     0,   247,   248,   249,   734,     0,   251,   252,
     253,     0,   254,   255,   256,   257,   258,   259,     0,     0,
     260,   261,   262,   263,   264,   265,   266,     0,   267,     0,
     268,     0,     0,   269,     0,   270,   271,   272,   273,   274,
       0,   275,     0,   276,     0,     0,   277,   278,   279,     0,
       0,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,     0,   292,     0,   293,   294,   295,   296,
     297,   298,   299,   300,   301,     0,   302,   303,     0,   304,
       0,   305,   306,   307,   308,     0,     0,   309,     0,     0,
       0,   310,   311,     0,     0,   312,     0,     0,   313,   314,
     315,   316,   317,     0,   318,   319,   320,   321,   322,     0,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   352,     0,   353,   354,   355,     0,   356,   357,
     358,   359,     0,   360,   361,     0,   362,   363,   364,   365,
     366,   367,   368,   369,   370,   371,     0,   372,   373,     0,
     374,   375,   376,   377,     0,   378,   379,     0,     0,   380,
     381,   382,   383,     0,   384,   385,   386,   387,   388,     0,
       0,   389,   390,   391,   392,     0,     0,   393,   394,   395,
     396,   397,   398,     0,   399,   400,     0,     0,   401,   402,
     403,   404,   405,   406,     0,     0,     0,   407,   161,   162,
     163,   164,   165,   166,   167,   168,     0,   169,   170,     0,
       0,     0,     0,     0,     0,     0,   171,   172,     0,   173,
       0,   174,   175,   176,     0,   177,     0,   178,   179,     0,
     180,   181,   182,   183,   184,     0,     0,   185,   186,   187,
     188,     0,   189,   190,   191,   192,   193,     0,     0,   194,
     195,   196,   197,   198,     0,   199,   200,   201,   202,     0,
     203,   204,   205,     0,   206,     0,     0,     0,     0,     0,
     207,   208,   209,   210,   211,   212,   213,   214,     0,   215,
       0,   216,   217,   218,   219,   220,     0,   221,     0,     0,
     222,   223,   224,   225,     0,   226,   227,   228,     0,   229,
       0,   230,   231,   232,   233,   234,   235,   236,     0,   237,
     238,   239,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,   244,   245,     0,   246,     0,   247,   248,   249,
     737,     0,   251,   252,   253,     0,   254,   255,   256,   257,
     258,   259,     0,     0,   260,   261,   262,   263,   264,   265,
     266,     0,   267,     0,   268,     0,     0,   269,     0,   270,
     271,   272,   273,   274,     0,   275,     0,   276,     0,     0,
     277,   278,   279,     0,     0,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,     0,   292,     0,
     293,   294,   295,   296,   297,   298,   299,   300,   301,     0,
     302,   303,     0,   304,     0,   305,   306,   307,   308,     0,
       0,   309,     0,     0,     0,   310,   311,     0,     0,   312,
       0,     0,   313,   314,   315,   316,   317,     0,   318,   319,
     320,   321,   322,     0,   323,   324,   325,   326,   327,   328,
     329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,   343,   344,   345,
     346,   347,   348,   349,   350,   351,   352,     0,   353,   354,
     355,     0,   356,   357,   358,   359,     0,   360,   361,     0,
     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
       0,   372,   373,     0,   374,   375,   376,   377,     0,   378,
     379,     0,     0,   380,   381,   382,   383,     0,   384,   385,
     386,   387,   388,     0,     0,   389,   390,   391,   392,     0,
       0,   393,   394,   395,   396,   397,   398,     0,   399,   400,
       0,     0,   401,   402,   403,   404,   405,   406,     0,     0,
       0,   407,   161,   162,   163,   164,   165,   166,   167,   168,
       0,   169,   170,     0,     0,     0,     0,     0,     0,     0,
     171,   172,     0,   173,     0,   174,   175,   176,     0,   177,
       0,   178,   179,     0,   180,   181,   182,   183,   184,     0,
       0,   185,   186,   187,   188,     0,   189,   190,   191,   192,
     193,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,   201,   202,     0,   203,   204,   205,     0,   206,     0,
       0,     0,     0,     0,   207,   208,   209,   210,   211,   212,
     213,   214,     0,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   223,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,   233,   234,
     235,   236,     0,   237,   238,   239,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,   244,   245,     0,   246,
       0,   247,   248,   249,   250,     0,   251,   252,   253,     0,
     254,   255,   256,   257,   258,   259,     0,     0,   260,   261,
     262,   263,   264,   265,   266,     0,   267,     0,   268,     0,
       0,   269,     0,   270,   271,   272,   273,   274,     0,   275,
       0,   276,     0,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   545,
     291,     0,   292,     0,   293,   294,   295,   296,   297,   298,
     299,   300,   301,     0,   302,   303,     0,   304,     0,   305,
     306,   307,   308,     0,     0,   309,     0,     0,     0,   310,
     311,     0,     0,   312,     0,     0,   313,   314,   315,   316,
     317,     0,   318,   319,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,   329,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,   546,   344,   345,   346,   347,   348,   349,   350,   351,
     352,     0,   353,   354,   874,     0,   356,   357,   358,   359,
       0,   360,   361,     0,   362,   363,   364,   365,   366,   367,
     368,   369,   370,   371,     0,   372,   373,     0,   374,   375,
     376,   377,     0,   548,   379,     0,     0,   549,   381,   382,
     383,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,     0,     0,   393,   394,   395,   396,   397,
     398,     0,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,   407,   161,   162,   163,   164,
     165,   166,   167,   168,     0,   169,   170,     0,     0,     0,
       0,     0,   896,     0,   171,   172,     0,   173,     0,   174,
     175,   176,     0,   177,     0,   178,   179,     0,   180,   181,
     182,   183,   184,     0,     0,   185,   186,   187,   188,     0,
     189,   190,   191,   192,   193,     0,     0,   194,   195,   196,
     197,   198,     0,   199,   200,   201,   202,     0,   203,   204,
     205,     0,   206,     0,     0,     0,     0,     0,   207,   208,
     209,   210,   211,   212,   213,   214,     0,   215,     0,   216,
     217,   218,   219,   220,     0,   221,     0,     0,   222,   223,
     224,   225,     0,   226,   227,   228,     0,   229,     0,   230,
     231,   232,   233,   234,   235,   236,     0,   237,   238,   239,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
     244,   245,     0,   246,     0,   247,   248,   249,   250,     0,
     251,   252,   253,     0,   254,   255,   256,   257,   258,   259,
       0,     0,   260,   261,   262,   263,   264,   265,   266,     0,
     267,     0,   268,     0,     0,   269,     0,   270,   271,   272,
     273,   274,     0,   275,     0,   276,     0,     0,   277,   278,
     279,     0,     0,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,     0,   292,     0,   293,   294,
     295,   296,   297,   298,   299,   300,   301,     0,   302,   303,
       0,   304,     0,   305,   306,   307,   308,     0,     0,   309,
       0,     0,     0,   310,   311,     0,     0,   312,     0,     0,
     313,   314,   315,   316,   317,     0,   318,   319,   320,   321,
     322,     0,   323,   324,   325,   326,   327,   328,   329,   330,
     331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,   343,   344,   345,   346,   347,
     348,   349,   350,   351,   352,     0,   353,   354,   355,     0,
       0,   357,   358,   359,     0,   360,   361,     0,   362,   363,
     364,   365,   366,   367,   368,   369,   370,   371,     0,   372,
     373,     0,   374,   375,   376,   377,     0,   378,   379,     0,
       0,   380,   381,   382,   383,     0,   384,   385,   386,   387,
     388,     0,     0,   389,   390,   391,   392,     0,     0,   393,
     394,   395,   396,   397,   398,     0,   399,   400,     0,     0,
     401,   402,   403,   404,   405,   406,     0,     0,     0,   407,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
       0,   173,     0,   174,   175,   176,     0,   177,     0,   178,
     179,     0,   180,   181,   182,   183,   184,     0,     0,   185,
     186,   187,   188,     0,   189,   190,   191,   192,   193,     0,
       0,   194,   195,   196,  1169,   198,     0,   199,   200,   201,
     202,     0,   203,   204,   205,     0,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,   212,   213,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   223,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,   233,   234,   235,   236,
       0,   237,   238,   239,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,   244,   245,     0,   246,     0,   247,
     248,   249,   250,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,     0,   260,   261,   262,   263,
     264,   265,   266,     0,   267,     0,   268,     0,     0,   269,
       0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
       0,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,     0,
     292,     0,   293,   294,   295,   296,   297,   298,   299,   300,
     301,     0,   302,   303,     0,   304,     0,   305,   306,   307,
     308,     0,     0,   309,     0,     0,     0,   310,   311,     0,
       0,   312,     0,     0,   313,   314,   315,   316,   317,     0,
     318,   319,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,   357,   358,   359,     0,   360,
     361,     0,   362,   363,   364,   365,   366,   367,   368,   369,
     370,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,   378,   379,     0,     0,   380,   381,   382,   383,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,   396,   397,   398,     0,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,   407,   161,   162,   163,   164,   165,   166,
     167,   168,     0,   169,   170,     0,     0,     0,     0,     0,
       0,     0,   171,   172,     0,   173,     0,   174,   175,   176,
       0,   177,     0,   178,   179,     0,   180,   181,   182,   183,
     184,     0,     0,   185,   186,   187,   188,     0,   189,   190,
     191,   192,   193,     0,     0,   194,   195,   196,   197,   198,
       0,   199,   200,   201,   202,     0,   203,   204,   205,     0,
     206,     0,     0,     0,     0,     0,   207,   208,   209,   210,
     211,   212,   213,   214,     0,   215,     0,   216,   217,   218,
     219,   220,     0,   221,     0,     0,   222,   223,   224,   225,
       0,   226,   227,   228,     0,   229,     0,   230,   231,   232,
     233,   234,   235,   236,     0,   237,   238,   239,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,   244,   245,
       0,   246,     0,   247,   248,   249,  1193,     0,   251,   252,
     253,     0,   254,   255,   256,   257,   258,   259,     0,     0,
     260,   261,   262,   263,   264,   265,   266,     0,   267,     0,
     268,     0,     0,   269,     0,   270,   271,   272,   273,   274,
       0,   275,     0,   276,     0,     0,   277,   278,   279,     0,
       0,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,     0,   292,     0,   293,   294,   295,   296,
     297,   298,   299,   300,   301,     0,   302,   303,     0,   304,
       0,   305,   306,   307,   308,     0,     0,   309,     0,     0,
       0,   310,   311,     0,     0,   312,     0,     0,   313,   314,
     315,   316,   317,     0,   318,   319,   320,   321,   322,     0,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   352,     0,   353,   354,   355,     0,   356,   357,
     358,   359,     0,   360,   361,     0,   362,   363,   364,   365,
     366,   367,   368,   369,   370,   371,     0,   372,   373,     0,
     374,   375,   376,   377,     0,   378,   379,     0,     0,   380,
     381,   382,   383,     0,   384,   385,   386,   387,   388,     0,
       0,   389,   390,   391,   392,     0,     0,   393,   394,   395,
     396,   397,   398,     0,   399,   400,     0,     0,   401,   402,
     403,   404,   405,   406,     0,     0,     0,   407,   161,   162,
     163,   164,   165,   166,   167,   168,     0,   169,   170,     0,
       0,     0,     0,     0,     0,     0,   171,   172,     0,   173,
       0,   174,   175,   176,     0,   177,     0,   178,   179,     0,
     180,   181,   182,   183,   184,     0,     0,   185,   186,   187,
     188,     0,   189,   190,   191,   192,   193,     0,     0,   194,
     195,   196,   197,   198,     0,   199,   200,   201,   202,     0,
     203,   204,   205,     0,   206,     0,     0,     0,     0,     0,
     207,   208,   209,   210,   211,   212,   213,   214,     0,   215,
       0,   216,   217,   218,   219,   220,     0,   221,     0,     0,
     222,   223,   224,   225,     0,   226,   227,   228,     0,   229,
       0,   230,   231,   232,   233,   234,   235,   236,     0,   237,
     238,   239,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,   244,   245,     0,   246,     0,   247,   248,   249,
     250,     0,   251,   252,   253,     0,   254,   255,   256,   257,
     258,   259,     0,     0,   260,   261,   262,   263,   264,   265,
     266,     0,   267,     0,   268,     0,     0,   269,     0,   270,
     271,   272,   273,   274,     0,   275,     0,   276,     0,     0,
     277,   278,   279,     0,     0,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,     0,   292,     0,
     293,   294,   295,   296,   297,   298,   299,   300,   301,     0,
     302,   303,     0,   304,     0,   305,   306,   307,   308,     0,
       0,   309,     0,     0,     0,   310,   311,     0,     0,   312,
       0,     0,   313,   314,   315,   316,   317,     0,   318,   319,
     320,   321,   322,     0,   323,   324,   325,   326,   327,   328,
     329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,   343,   344,   345,
     346,   347,  1254,   349,   350,   351,   352,     0,   353,   354,
     355,     0,   356,   357,   358,   359,     0,   360,   361,     0,
     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
       0,   372,   373,     0,   374,   375,   376,   377,     0,   378,
     379,     0,     0,   380,   381,   382,   383,     0,   384,   385,
     386,   387,   388,     0,     0,   389,   390,   391,   392,     0,
       0,   393,   394,   395,   396,   397,   398,     0,   399,   400,
       0,     0,   401,   402,   403,   404,   405,   406,     0,     0,
       0,   407,   161,   162,   163,   164,   165,   166,   167,   168,
       0,   169,   170,     0,     0,     0,     0,     0,     0,     0,
     171,   172,     0,   173,     0,   174,   175,   176,     0,  1109,
       0,  1110,  1111,     0,   180,   181,   182,   183,   184,     0,
       0,   185,  1112,  1113,   188,     0,   189,   190,   191,   192,
       0,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,     0,   202,     0,   203,   204,   205,     0,   206,     0,
       0,     0,     0,     0,   207,   208,   209,   210,   211,  1114,
    1115,   214,     0,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   797,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,     0,   234,
     235,     0,     0,   237,   238,  1116,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,   244,     0,     0,   246,
       0,   247,   248,   249,   250,     0,   251,   252,   253,  1457,
     254,   255,   256,   257,   258,   259,     0,     0,  1458,   261,
     262,   263,   264,  1117,  1118,     0,  1119,     0,   268,     0,
       0,   269,     0,   270,   271,   272,   273,   274,     0,     0,
       0,   276,     0,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
    1120,     0,  1121,     0,   293,   294,   295,   296,   297,   298,
     299,     0,   301,     0,   302,   303,     0,   304,     0,     0,
    1122,   307,   308,     0,     0,   309,     0,     0,     0,   310,
     311,     0,     0,  1459,     0,     0,     0,   314,   315,   316,
     317,     0,     0,     0,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,  1123,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,   343,   344,     0,   346,   347,   348,   349,   350,   351,
     352,     0,   353,   354,   355,     0,   356,  1460,   358,   359,
       0,   360,  1125,     0,   362,   363,   364,   365,   366,   367,
     368,   369,     0,   371,     0,   372,   373,     0,   374,   375,
     376,   377,     0,  1126,  1127,     0,     0,   380,     0,   382,
       0,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,     0,     0,   393,   394,   395,     0,  1128,
     398,     0,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,  1129,   161,   162,   163,   164,
     165,   166,   167,   168,     0,   169,   170,     0,     0,     0,
       0,     0,     0,     0,   171,   172,     0,   173,     0,   174,
     175,   176,     0,  1109,     0,  1110,  1111,     0,   180,   181,
     182,   183,   184,     0,     0,   185,  1112,  1113,   188,     0,
     189,   190,   191,   192,     0,     0,     0,   194,   195,   196,
     197,   198,     0,   199,   200,     0,   202,     0,   203,   204,
     205,     0,   206,     0,     0,     0,     0,     0,   207,   208,
     209,   210,   211,  1114,  1115,   214,     0,   215,     0,   216,
     217,   218,   219,   220,     0,   221,     0,     0,   222,   797,
     224,   225,     0,   226,   227,   228,     0,   229,     0,   230,
     231,   232,     0,   234,   235,     0,     0,   237,   238,  1116,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
     244,     0,     0,   246,     0,   247,   248,   249,   250,     0,
     251,   252,   253,     0,   254,   255,   256,   257,   258,   259,
       0,     0,     0,   261,   262,   263,   264,  1117,  1118,     0,
    1119,     0,   268,     0,     0,   269,     0,   270,   271,   272,
     273,   274,     0,     0,     0,   276,     0,     0,   277,   278,
     279,     0,     0,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,  1120,     0,  1121,     0,   293,   294,
     295,   296,   297,   298,   299,  1485,   301,     0,   302,   303,
       0,   304,     0,     0,  1122,   307,   308,     0,     0,   309,
       0,     0,     0,   310,   311,     0,     0,     0,     0,     0,
       0,   314,   315,   316,   317,     0,     0,     0,   320,   321,
     322,     0,   323,   324,   325,   326,   327,   328,  1123,   330,
     331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,   343,   344,     0,   346,   347,
     348,   349,   350,   351,   352,     0,   353,   354,   355,     0,
     356,  1124,   358,   359,     0,   360,  1125,     0,   362,   363,
     364,   365,   366,   367,   368,   369,     0,   371,     0,   372,
     373,     0,   374,   375,   376,   377,     0,  1126,  1127,     0,
       0,   380,     0,   382,     0,     0,   384,   385,   386,   387,
     388,     0,     0,   389,   390,   391,   392,     0,     0,   393,
     394,   395,     0,  1128,   398,     0,   399,   400,     0,     0,
     401,   402,   403,   404,   405,   406,     0,     0,     0,  1129,
     161,   162,   163,   164,   165,   166,   167,   168,     0,   169,
     170,     0,     0,     0,     0,     0,     0,     0,   171,   172,
       0,   173,     0,   174,   175,   176,     0,  1109,     0,  1110,
    1111,     0,   180,   181,   182,   183,   184,     0,     0,   185,
    1112,  1113,   188,     0,   189,   190,   191,   192,     0,     0,
       0,   194,   195,   196,   197,   198,     0,   199,   200,     0,
     202,     0,   203,   204,   205,     0,   206,     0,     0,     0,
       0,     0,   207,   208,   209,   210,   211,  1114,  1115,   214,
       0,   215,     0,   216,   217,   218,   219,   220,     0,   221,
       0,     0,   222,   797,   224,   225,     0,   226,   227,   228,
       0,   229,     0,   230,   231,   232,     0,   234,   235,     0,
       0,   237,   238,  1116,     0,   240,     0,   241,     0,     0,
       0,   242,   243,     0,   244,     0,     0,   246,     0,   247,
     248,   249,   250,     0,   251,   252,   253,     0,   254,   255,
     256,   257,   258,   259,     0,     0,     0,   261,   262,   263,
     264,  1117,  1118,     0,  1119,     0,   268,     0,     0,   269,
       0,   270,   271,   272,   273,   274,     0,     0,     0,   276,
       0,     0,   277,   278,   279,     0,     0,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,  1120,     0,
    1121,     0,   293,   294,   295,   296,   297,   298,   299,  2272,
     301,     0,   302,   303,     0,   304,     0,     0,  1122,   307,
     308,     0,     0,   309,     0,     0,     0,   310,   311,     0,
       0,     0,     0,     0,     0,   314,   315,   316,   317,     0,
       0,     0,   320,   321,   322,     0,   323,   324,   325,   326,
     327,   328,  1123,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,     0,   343,
     344,     0,   346,   347,   348,   349,   350,   351,   352,     0,
     353,   354,   355,     0,   356,  1124,   358,   359,     0,   360,
    1125,     0,   362,   363,   364,   365,   366,   367,   368,   369,
       0,   371,     0,   372,   373,     0,   374,   375,   376,   377,
       0,  1126,  1127,     0,     0,   380,     0,   382,     0,     0,
     384,   385,   386,   387,   388,     0,     0,   389,   390,   391,
     392,     0,     0,   393,   394,   395,     0,  1128,   398,     0,
     399,   400,     0,     0,   401,   402,   403,   404,   405,   406,
       0,     0,     0,  1129,   161,   162,   163,   164,   165,   166,
     167,   168,     0,   169,   170,     0,     0,     0,     0,     0,
       0,     0,   171,   172,     0,   173,     0,   174,   175,   176,
       0,  1109,     0,  1110,  1111,     0,   180,   181,   182,   183,
     184,     0,     0,   185,  1112,  1113,   188,     0,   189,   190,
     191,   192,     0,     0,     0,   194,   195,   196,   197,   198,
       0,   199,   200,     0,   202,     0,   203,   204,   205,     0,
     206,     0,     0,     0,     0,     0,   207,   208,   209,   210,
     211,  1114,  1115,   214,     0,   215,     0,   216,   217,   218,
     219,   220,     0,   221,     0,     0,   222,   797,   224,   225,
       0,   226,   227,   228,     0,   229,     0,   230,   231,   232,
       0,   234,   235,     0,     0,   237,   238,  1116,     0,   240,
       0,   241,     0,     0,     0,   242,   243,     0,   244,     0,
       0,   246,     0,   247,   248,   249,   250,     0,   251,   252,
     253,     0,   254,   255,   256,   257,   258,   259,     0,     0,
       0,   261,   262,   263,   264,  1117,  1118,     0,  1119,     0,
     268,     0,     0,   269,     0,   270,   271,   272,   273,   274,
       0,     0,     0,   276,     0,     0,   277,   278,   279,     0,
       0,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,  1120,     0,  1121,     0,   293,   294,   295,   296,
     297,   298,   299,     0,   301,     0,   302,   303,     0,   304,
    1451,     0,  1122,   307,   308,     0,     0,   309,     0,     0,
       0,   310,   311,     0,     0,     0,     0,     0,     0,   314,
     315,   316,   317,     0,     0,     0,   320,   321,   322,     0,
     323,   324,   325,   326,   327,   328,  1123,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,     0,   343,   344,     0,   346,   347,   348,   349,
     350,   351,   352,     0,   353,   354,   355,     0,   356,  1460,
     358,   359,     0,   360,  1125,     0,   362,   363,   364,   365,
     366,   367,   368,   369,     0,   371,     0,   372,   373,     0,
     374,   375,   376,   377,     0,  1126,  1127,     0,     0,   380,
       0,   382,     0,     0,   384,   385,   386,   387,   388,     0,
       0,   389,   390,   391,   392,     0,     0,   393,   394,   395,
       0,  1128,   398,     0,   399,   400,     0,     0,   401,   402,
     403,   404,   405,   406,     0,     0,     0,  1129,   161,   162,
     163,   164,   165,   166,   167,   168,     0,   169,   170,     0,
       0,     0,     0,     0,     0,     0,   171,   172,     0,   173,
       0,   174,   175,   176,     0,  1109,     0,  1110,  1111,     0,
     180,   181,   182,   183,   184,     0,     0,   185,  1112,  1113,
     188,     0,   189,   190,   191,   192,     0,     0,     0,   194,
     195,   196,   197,   198,     0,   199,   200,     0,   202,     0,
     203,   204,   205,     0,   206,     0,     0,     0,     0,     0,
     207,   208,   209,   210,   211,  1114,  1115,   214,     0,   215,
       0,   216,   217,   218,   219,   220,     0,   221,     0,     0,
     222,   797,   224,   225,     0,   226,   227,   228,     0,   229,
       0,   230,   231,   232,     0,   234,   235,     0,     0,   237,
     238,  1116,     0,   240,     0,   241,     0,     0,     0,   242,
     243,     0,   244,     0,     0,   246,     0,   247,   248,   249,
     250,     0,   251,   252,   253,     0,   254,   255,   256,   257,
     258,   259,     0,     0,     0,   261,   262,   263,   264,  1117,
    1118,     0,  1119,     0,   268,     0,     0,   269,     0,   270,
     271,   272,   273,   274,     0,     0,     0,   276,     0,     0,
     277,   278,   279,     0,     0,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,  1120,     0,  1121,     0,
     293,   294,   295,   296,   297,   298,   299,     0,   301,     0,
     302,   303,     0,   304,     0,     0,  1122,   307,   308,     0,
       0,   309,     0,     0,     0,   310,   311,     0,     0,     0,
       0,     0,     0,   314,   315,   316,   317,     0,     0,     0,
     320,   321,   322,     0,   323,   324,   325,   326,   327,   328,
    1123,   330,   331,     0,   332,   333,   334,   335,   336,   337,
     338,   339,   340,     0,   341,   342,     0,   343,   344,     0,
     346,   347,   348,   349,   350,   351,   352,     0,   353,   354,
     355,     0,   356,  1124,   358,   359,     0,   360,  1125,     0,
     362,   363,   364,   365,   366,   367,   368,   369,     0,   371,
       0,   372,   373,     0,   374,   375,   376,   377,     0,  1126,
    1127,     0,     0,   380,     0,   382,     0,     0,   384,   385,
     386,   387,   388,     0,     0,   389,   390,   391,   392,     0,
       0,   393,   394,   395,     0,  1128,   398,     0,   399,   400,
       0,     0,   401,   402,   403,   404,   405,   406,     0,     0,
       0,  1129,   161,   162,   163,   164,   165,   166,   167,   168,
       0,   169,   170,     0,     0,     0,     0,     0,     0,     0,
     171,   172,     0,   173,     0,   174,   175,   176,     0,  1109,
       0,  1110,  1111,     0,   180,   181,   182,   183,   184,     0,
       0,   185,  1112,  1113,   188,     0,   189,   190,   191,   192,
       0,     0,     0,   194,   195,   196,   197,   198,     0,   199,
     200,     0,   202,     0,   203,   204,   205,     0,   206,     0,
       0,     0,     0,     0,   207,   208,   209,   210,   211,  1114,
    1115,   214,     0,   215,     0,   216,   217,   218,   219,   220,
       0,   221,     0,     0,   222,   797,   224,   225,     0,   226,
     227,   228,     0,   229,     0,   230,   231,   232,     0,   234,
     235,     0,     0,   237,   238,  1116,     0,   240,     0,   241,
       0,     0,     0,   242,   243,     0,   244,     0,     0,   246,
       0,   247,   248,   249,   250,     0,   251,   252,   253,     0,
     254,   255,   256,   257,   258,   259,     0,     0,     0,   261,
     262,   263,   264,  1117,  1118,     0,  1119,     0,   268,     0,
       0,   269,     0,   270,   271,   272,   273,   274,     0,     0,
       0,   276,     0,     0,   277,   278,   279,     0,     0,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
    1120,     0,  1121,     0,   293,   294,   295,   296,   297,   298,
     299,     0,   301,     0,   302,   303,     0,   304,     0,     0,
    1122,   307,   308,     0,     0,   309,     0,     0,     0,   310,
     311,     0,     0,     0,     0,     0,     0,   314,   315,   316,
     317,     0,     0,     0,   320,   321,   322,     0,   323,   324,
     325,   326,   327,   328,  1123,   330,   331,     0,   332,   333,
     334,   335,   336,   337,   338,   339,   340,     0,   341,   342,
       0,   343,   344,     0,   346,   347,   348,   349,   350,   351,
     352,     0,   353,   354,   355,     0,   356,  1460,   358,   359,
       0,   360,  1125,     0,   362,   363,   364,   365,   366,   367,
     368,   369,     0,   371,     0,   372,   373,     0,   374,   375,
     376,   377,     0,  1126,  1127,     0,     0,   380,     0,   382,
       0,     0,   384,   385,   386,   387,   388,     0,     0,   389,
     390,   391,   392,     0,     0,   393,   394,   395,     0,  1128,
     398,     0,   399,   400,     0,     0,   401,   402,   403,   404,
     405,   406,     0,     0,     0,  1129,   161,   162,   163,   164,
     165,   166,   167,   168,     0,   169,   170,     0,     0,     0,
       0,     0,     0,     0,   171,   172,     0,   173,     0,   174,
     175,   176,     0,  1109,     0,  1110,  1111,     0,   180,   181,
     182,   183,   184,     0,     0,   185,  1112,  1113,   188,     0,
     189,   190,   191,   192,     0,     0,     0,   194,   195,   196,
     197,   198,     0,   199,   200,     0,   202,     0,   203,   204,
     205,     0,   206,     0,     0,     0,     0,     0,   207,   208,
     209,   210,   211,  1114,  1115,   214,     0,   215,     0,   216,
     217,   218,   219,   220,     0,   221,     0,     0,   222,   797,
     224,   225,     0,   226,   227,   228,     0,   229,     0,   230,
     231,   232,     0,   234,   235,     0,     0,   237,   238,  1116,
       0,   240,     0,   241,     0,     0,     0,   242,   243,     0,
     244,     0,     0,   246,     0,   247,   248,   249,   250,     0,
     251,   252,   253,     0,   254,   255,   256,   257,   258,   259,
       0,     0,     0,   261,   262,   263,   264,  1117,  1118,     0,
    1119,     0,   268,     0,     0,   269,     0,   270,   271,   272,
     273,   274,     0,     0,     0,   276,     0,     0,   277,   278,
     279,     0,     0,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,  1120,     0,  1121,     0,   293,   294,
     295,   296,   297,   298,   299,     0,   301,     0,   302,   303,
       0,   304,     0,     0,  1122,   307,   308,     0,     0,   309,
       0,     0,     0,   310,   311,     0,     0,     0,     0,     0,
       0,   314,   315,   316,   317,     0,     0,     0,   320,   321,
     322,     0,   323,   324,   325,   326,   327,   328,  1123,   330,
     331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
     340,     0,   341,   342,     0,   343,   344,     0,   346,   347,
     348,   349,   350,   351,   352,     0,   353,   354,   355,     0,
     356,     0,   358,   359,     0,   360,  1125,     0,   362,   363,
     364,   365,   366,   367,   368,   369,     0,   371,     0,   372,
     373,     0,   374,   375,   376,   377,     0,  1126,  1127,     0,
       0,   380,     0,   382,     0,     0,   384,   385,   386,   387,
     388,     0,     0,   389,   390,   391,   392,     0,     0,   393,
     394,   395,     0,  1128,   398,     0,   399,   400,     0,     0,
     401,   402,   403,   404,   405,   406,     0,     0,     0,  1129
};

static const short yycheck[] =
{
       0,   581,   513,   151,   718,    40,    45,   144,   435,   146,
     690,    11,   148,  1196,    12,  1166,   152,   697,   143,   824,
     646,   158,   147,   159,  1222,   649,    33,    20,   775,   651,
     549,    21,   543,    26,     0,  1142,     0,     0,   465,    42,
     634,  1691,   546,    33,     0,    45,  1316,   558,   642,  1150,
     952,  1866,   649,   603,   617,     7,     8,  1257,  1636,   429,
    1155,    13,    14,   678,  1155,  1155,    18,  1665,    20,    21,
    1155,  1155,  1626,  1387,    26,   885,    28,  2023,  1155,    31,
      32,    33,  1816,    35,     0,    37,    38,  2049,   682,   929,
     460,   704,   686,    19,   463,     0,   711,  1831,   692,   468,
    1396,  1621,  1622,  2364,   698,   483,    11,   476,   740,   544,
     613,    44,   547,  1465,  1466,    18,  2171,     0,     0,    38,
    1179,  1616,    83,    24,    31,  1547,     0,  1124,    23,   786,
     787,     0,     0,    24,    78,  2497,    38,  1393,    11,    37,
     796,    11,   162,     5,    17,    83,   149,    17,    44,    46,
      38,   154,   155,   810,   122,    83,    23,    46,   127,    53,
      18,   738,    38,     7,    53,  2007,  2008,  2009,  2010,   140,
      59,   122,    56,     0,    38,   158,  2730,    11,   107,   124,
     122,    90,     7,    17,    11,   107,   123,   108,    12,   213,
     134,    83,   144,   145,   146,   264,   148,   215,   150,   151,
     152,   153,   216,    59,   156,   157,   158,   159,    88,   841,
    2609,   213,  2769,   111,    93,    83,   124,  1318,    83,    22,
     247,   209,   119,   277,   244,    88,    64,    83,   272,   157,
     119,   209,   736,   306,    97,   185,   663,    87,   306,   279,
     138,   185,    85,  2751,   188,   107,  1269,  1270,  1271,   177,
      83,    25,   937,    97,  1277,    85,  2655,    46,  1281,  1282,
     886,   337,    24,    14,    15,  1288,     9,  2528,   122,    88,
      59,    45,    97,    83,  1297,   220,  1299,  2785,   337,   218,
     960,    29,  1092,   323,    27,   329,  1292,   435,   126,    44,
    1313,   976,  1315,   230,   431,    24,   372,   433,   367,   372,
     425,   437,   924,    99,   372,   929,   360,   444,  2670,   159,
     446,   272,   204,   372,   864,    24,   893,   465,  2826,  2420,
     270,  2422,  1127,   367,  2881,   204,   270,   122,    78,   153,
     119,   456,   929,   152,   213,  2596,   139,   462,   257,  1345,
     367,   238,   479,   367,   209,   282,   291,  2746,   204,   238,
     279,   272,   372,   367,   372,   257,   725,   279,   266,  1542,
     348,   259,  1469,    24,   306,   367,   209,  2628,   329,   257,
     348,   204,   235,   271,   204,  1001,   268,  1091,   882,   158,
      88,   257,  2936,    50,   134,   229,   755,   285,   136,   372,
     348,   996,   140,   257,   292,   764,  1974,   341,   160,   161,
     295,   372,   264,   372,   372,  2460,   367,   776,   329,  2251,
     348,   284,   306,  1669,   284,   348,   325,   279,   346,   347,
     348,   372,   319,   367,   352,   173,  1106,   252,   295,  2791,
     319,   359,   316,   277,   367,   185,   334,  2698,   188,  2254,
    2255,   367,     8,   323,   152,   207,   367,   352,   951,   238,
     284,   160,   455,   372,   359,  1112,  1113,    23,  1172,  1115,
     367,    27,   365,  1460,  1121,   368,   371,   370,   369,   372,
     372,   367,   363,  1088,   426,    41,    42,   429,   369,   431,
     348,   433,   619,   435,   372,   437,   438,   439,   371,   371,
     442,   484,   444,   486,   446,   488,   372,   371,   933,   492,
     452,  1757,   371,   371,   323,   457,  2348,   365,   460,  1103,
     368,   463,   370,   465,   372,   663,   468,   469,   372,    38,
     270,   473,   474,   901,   476,   352,  1150,   479,   653,  1881,
     319,  1883,   359,   281,   969,   660,  1832,   674,   348,   335,
     967,   129,   352,  1148,   371,  2646,  1569,  1969,  1153,   216,
    1972,  1973,   689,  1150,    97,  1825,  1169,  1616,  1163,  1981,
     995,    93,   219,  1465,   272,    76,   703,  2062,   520,    83,
     522,  2066,   572,   525,   419,    77,   331,   143,    31,    88,
     705,   147,    85,   149,  2845,   722,   298,  2699,   154,   155,
    1430,   341,   544,   348,   546,   547,   358,   359,   360,   361,
     362,   363,    59,   448,   134,  1182,   572,   369,   572,   572,
     562,    11,   367,  1190,   105,   323,   572,   125,    60,  2880,
    1197,   329,    75,  2735,  1256,  1257,  1283,  1284,    58,  1206,
     228,   360,   361,   362,   363,  1267,  1268,   244,  1990,   299,
     369,   143,    84,   152,   147,   273,   237,  1279,  1280,   358,
     359,   360,   361,   362,   363,   185,   572,    86,  2604,   367,
     369,  1293,  1294,  1167,  2016,   156,  2628,   619,   125,   177,
     298,   101,   279,   184,   262,   186,  1699,   196,   162,   308,
    2234,   213,  1304,   340,   273,  1495,   143,    16,  1498,  1499,
     204,  2803,   174,    93,  1318,    24,  2048,   160,   151,   123,
      29,   204,   144,    11,   656,   333,   348,   367,   137,   298,
     339,   663,   117,   665,  1225,  1226,   323,   308,   670,  1351,
     177,  1318,   674,   308,   148,   367,  1732,  1733,  1350,   681,
     125,  1737,   223,   215,   277,   268,    86,   689,   257,   163,
     270,   229,   742,   196,   333,   306,  2561,   171,   339,    37,
     180,   703,   704,   106,   706,   218,  1815,   757,   277,   420,
     244,  1767,  1768,   272,   252,   222,   299,   255,  1195,   174,
     722,  1878,   315,   725,   288,    87,   742,   291,   742,   742,
     780,   117,   177,   264,   736,    93,   742,   137,   141,   277,
     123,   757,   300,   354,   302,   297,   298,   237,   798,   229,
     752,  1824,   841,   755,   756,   338,  1430,   136,   760,   370,
     215,   140,   764,    86,   323,   367,   269,  2395,  1188,   967,
     772,   244,  1191,   111,   776,   333,   778,   318,   828,  1198,
     253,   160,   161,  1430,   367,  1204,    60,   261,   174,   289,
     290,   841,   323,   300,   173,   302,  2444,   159,  2426,   337,
     138,   274,  1221,   310,  1223,  1224,   517,   423,  1227,   425,
      84,     0,   319,  1290,   137,   229,  2017,   352,   308,   299,
      68,   301,   365,   337,   338,   204,   537,   370,   207,   215,
    2302,   366,   371,   229,   545,  2307,  2308,  2407,   252,   455,
     456,   220,    19,   222,   332,  2093,   462,  1920,   348,   339,
    2083,   252,  2717,   367,   255,   300,   252,   302,  1502,  1503,
      37,   229,   912,   913,  2015,   915,  2411,  1631,  2232,  1482,
     144,  2416,  2122,  2018,  2419,   123,   277,  2018,  2018,   252,
     882,   277,   255,  2018,  2018,   887,   888,    88,   337,   338,
     506,  2018,    88,  1657,   896,   348,   898,   513,   122,   348,
     148,  2834,   281,  1292,   277,   372,  1093,   204,   524,   277,
    1097,    64,    93,  1990,   367,   163,   140,  2148,   367,   257,
      53,   259,  2855,   171,  1997,  1998,    59,   543,  1880,    82,
     299,   933,   113,   271,   111,    88,   337,   229,   991,  2016,
     105,  2172,   558,  2876,   192,   561,   243,   285,   300,  2882,
     302,   152,   117,  2062,   292,   108,   152,  2066,   574,  2659,
     252,   138,  1627,   255,   337,   967,   677,   969,  1154,   338,
     368,   331,   351,  2906,   372,   354,   355,   356,  1397,   358,
     359,   360,   361,   362,   363,   277,   218,   366,   348,   166,
     369,   156,   348,   995,   373,   362,   334,  1195,   367,   152,
     218,   229,   229,   370,   205,   206,  1181,   367,   229,   174,
     206,   367,  1432,   261,  1189,  1642,   610,   306,  1645,   229,
    1207,  1208,  1649,   204,  1624,   252,  2346,   255,   209,   337,
     338,   252,   213,   348,     5,    93,   652,   653,   229,    10,
     634,   264,   252,   362,   660,   367,    17,  1222,   642,   277,
     215,   370,   367,   352,   348,   113,   277,  1476,   223,   367,
     359,   252,  2135,    34,   287,   310,  1693,  2851,  1750,    16,
    1930,   272,  2145,   367,   254,   366,   272,  1937,  1938,  2551,
    2552,   372,   259,   699,   700,   701,   368,   241,  1770,   705,
     372,  1093,  1290,  1647,   271,  1097,  2152,  1099,  2643,  2155,
    2156,  2157,  2158,  2159,  2160,  2161,  2162,  2163,   285,  2165,
     366,  2739,    61,    46,   977,   292,   372,   980,   348,   272,
     135,   984,   323,  1805,  2908,   160,   348,   323,   329,  1179,
    1990,   312,   843,   329,   363,  1817,  1818,   367,   754,   320,
     369,   347,   143,   854,  1233,   367,   352,  2931,  2204,  2205,
      83,   209,  1154,   318,  1156,   213,  2016,   334,    35,   775,
     337,  1833,   166,   348,  1212,  1167,   367,  1169,   347,  2489,
     323,   367,   367,   352,   885,     7,   329,   337,   338,    32,
     359,    13,   367,  1233,   368,    38,  1188,   371,   348,  1191,
    1192,   352,  1242,  1195,  1251,   368,  1198,  1199,   371,  1201,
    1202,   218,  1204,   368,   368,  1207,  1208,   367,   372,   300,
    1250,   302,   368,   160,   367,    16,   372,   367,    50,  1221,
     368,  1223,  1224,   368,   372,  1227,  1242,   372,  1242,  1242,
     365,  1233,   367,  2314,  2315,  2392,  1242,  2318,  2710,  2320,
    1867,  1427,   365,   105,   367,  1431,   240,   370,  1250,  1251,
      36,    35,  1254,  1822,   312,   117,   343,   344,   345,  1445,
      92,  2334,   320,   368,    25,    97,   368,   372,   100,   162,
     372,   204,  1322,   220,   342,   368,   209,  2350,   894,   372,
     300,   370,   302,   360,   361,   362,   363,   221,  1290,  1475,
      76,  1477,   369,   368,   156,   368,   368,   372,   221,   372,
     372,  2357,  2411,  1489,   218,   238,  1492,  2416,  2038,  1786,
    2419,   306,   174,   145,   218,   248,  1990,   342,  2115,  1946,
    1947,  2176,  2177,   358,   359,   360,   361,   362,   363,   368,
      43,    44,   368,   372,   369,  1521,   372,    78,  1524,    25,
    1526,  2015,  2016,  1732,  1733,   368,   368,   162,  1737,   372,
     372,  1538,  1749,   215,  1751,  1752,   142,  1544,  1545,   160,
     576,   223,   578,   368,   196,   368,   982,   372,  2015,   372,
     105,   277,   368,  2693,   342,   991,   372,   160,  1767,  1768,
     368,   360,   117,   368,   372,  1387,   319,   372,   368,   300,
     368,   302,   372,   134,   372,  1397,  2597,   229,   184,   121,
     186,   368,    19,  2075,   351,   372,   368,   354,   355,   356,
     196,   358,   359,   360,   361,   362,   363,   337,   338,   220,
      37,   156,   369,   255,  1843,  1427,  1428,   368,   368,  1431,
    1432,  2103,   372,   368,  1436,  2491,  2492,   372,    35,   174,
    1442,   367,   228,  1445,   185,   277,  1448,   188,  1635,   370,
     368,  2078,   367,  2080,   372,  2082,   318,  2084,   252,   368,
     368,   368,  2089,   372,   372,   372,   277,   368,   368,   367,
     256,   372,   372,  1475,  1476,  1477,  1478,   367,  1480,  2727,
     215,  1483,  1484,  1902,  2067,   367,  2069,  1489,   223,  2116,
    1492,  1493,  1494,  2047,   111,   370,   337,   338,   368,  1918,
     286,  2183,   372,  1922,   218,  1507,  1508,  1509,  1510,  1511,
    1512,  1513,   172,  2185,  1516,  1517,  1518,  2626,   367,  1521,
    1522,   138,  1524,  1525,  1526,   212,   368,  1616,   368,   270,
     372,   166,   372,   368,  2643,  1583,  1538,   372,   337,   338,
     368,   368,  1544,  1545,   372,   372,    19,    46,   368,   166,
     351,  2227,   372,   354,   355,   356,   337,   358,   359,   360,
     361,   362,   363,  1179,    37,  1181,  1616,   367,   369,    19,
     368,   337,   338,  1189,   372,   358,   359,   360,   361,   362,
     363,    25,  1584,   318,  1200,     0,   369,  1203,  1786,    68,
     368,   368,   368,   367,   372,   372,   372,  1599,   766,   767,
     341,  1603,  1844,  1845,   367,   346,  1222,   348,    25,  1225,
    1226,  2667,  1846,  1847,   229,  1617,   166,   325,   109,  1621,
    1622,  1237,   109,  2679,  2680,   912,   913,   367,   915,   912,
     913,    16,   915,  1635,  1636,  1732,  1733,   109,   111,   109,
    1737,   109,   259,  1841,   123,  1647,   372,   109,   367,    64,
     109,   109,   218,   109,   271,  2764,   109,  1368,   218,  2860,
     109,  1663,   109,    19,   118,   138,  1852,   172,   285,   148,
    1767,  1768,  2402,   367,   117,   292,   117,   348,   348,   367,
     234,  1770,   367,   367,   163,  1687,   367,   367,   367,  1691,
     105,   367,   171,   166,   367,  2114,   348,   348,   367,   367,
    1886,   367,   117,   367,   367,   367,   367,   122,   348,   367,
     348,   126,   367,   192,   129,   226,   131,   334,   367,   367,
    1770,   367,   372,    19,   172,  1810,  1811,  2960,   367,   117,
     117,  1347,   306,  1783,  2790,   306,    16,  2846,   370,   218,
     218,   156,   306,   306,   306,   271,   209,   306,   324,  1936,
     306,   306,   372,  1803,   306,   325,   268,  1759,   306,   174,
     306,   306,    53,  2152,   145,  1815,  2155,  2156,  2157,  2158,
    2159,  2160,  2161,  2162,  2163,   160,  2165,   310,  1394,   218,
     310,   372,   261,   306,  1786,   306,   259,   306,   268,   306,
     218,   218,  1990,   160,   367,   337,   331,    19,   271,   367,
     215,    18,   367,  2430,  2431,     9,   367,    83,   223,   367,
     180,   333,   285,   117,   367,  2204,  2205,   218,  2016,   292,
      19,   336,   109,   269,  1826,  2898,  2899,   325,  1830,   306,
     109,   208,  1543,   329,   258,   220,  1547,   122,   367,   352,
     335,  1843,   369,   258,   304,   277,   325,   304,   372,     7,
    1852,  1853,  1854,   304,   306,    13,    14,   367,  2277,  2278,
      18,   334,    20,   367,  1866,   122,   308,   368,    26,   372,
      28,   354,   156,    24,   219,   372,   213,   174,    29,   368,
     160,   306,  1593,   298,  1886,  1887,  1888,   306,   268,    58,
    2520,   367,   164,   164,   209,   209,  1607,   209,   367,  1515,
    1902,   218,   224,   318,   306,   268,   306,   372,   372,  2095,
      35,    35,  2556,   368,   252,   244,  1918,   160,  2093,   160,
    1922,   336,    19,   160,   160,   354,   325,   216,   343,   344,
     345,  2117,    18,   306,  1936,   365,   117,   306,   306,   365,
     220,   306,   354,  2130,   160,   218,    46,   222,    19,   218,
     365,   130,   117,   368,   372,   370,   371,   133,   133,    59,
      19,   367,   218,   368,  1580,   218,   351,   298,  2357,   354,
     355,   356,  1974,   358,   359,   360,   361,   362,   363,   372,
       8,   127,  1984,    83,   369,    85,  1602,   187,   218,   140,
     372,  2041,   150,  1609,    35,   153,   368,   368,   156,   157,
    1616,   122,   368,   342,   220,  2055,   368,   368,  2690,   160,
     161,   368,  2062,   368,   368,   368,  2066,   368,   342,   368,
     372,   368,  2649,  2650,  2651,  2041,   368,   368,   368,   220,
     174,  2658,   342,   122,   367,   367,   306,   150,   368,  2055,
    2042,   367,   367,   209,   229,  2047,  2523,   147,   174,   231,
     160,  2101,   306,    31,  2056,  2152,   207,  2059,  2155,  2156,
    2157,  2158,  2159,  2160,  2161,  2162,  2163,   231,  2165,   220,
    2072,   351,   322,   306,   354,   355,   356,   160,   358,   359,
     360,   361,   362,   363,   160,  2101,   368,   346,   365,   369,
     368,    69,   270,  2095,   188,   218,   174,   315,   254,   354,
    2102,   368,  2491,  2492,   204,   367,   372,  2204,  2205,   209,
     368,    89,  2114,   216,   218,  2117,   306,   325,     0,   218,
     368,   367,   367,  2212,   163,   163,   104,   225,  2130,  2214,
    2215,  2216,  2217,   325,   221,   351,   107,   372,   238,   107,
     118,   365,   358,   359,   360,   361,   362,   363,   248,   368,
     103,   117,   122,   369,   132,   369,   368,   368,   368,    44,
     351,  2788,  2212,   354,   355,   356,   122,   358,   359,   360,
     361,   362,   363,   367,   129,   368,   150,  2941,   315,   368,
     354,   367,    64,   160,   306,   368,   306,   306,   160,  2750,
     367,   164,   337,  1809,   366,   366,    19,   117,   222,  1815,
     351,   146,    55,   299,   367,   372,  1917,   358,   359,   360,
     361,   362,   363,   328,   367,   163,   368,  2636,   369,   319,
     367,   126,   122,   105,   122,   368,   367,  2646,   368,   368,
    2232,   209,  2275,   368,   368,   117,   367,    35,   216,   368,
     122,   131,   315,   325,   126,   209,   209,   129,   160,   131,
      90,   209,  2254,  2255,    85,   147,   124,   366,  1969,   124,
    2357,  1972,  1973,   122,   325,   243,    98,   325,   426,   108,
    1981,    19,    46,   368,   156,  2277,  2278,  1988,  2667,  1990,
      46,   439,   367,   221,   442,   165,   122,   367,   306,   221,
    2679,  2680,   174,   367,   452,  2297,  2298,   122,   367,   457,
     368,   248,   372,    19,   183,  2016,   209,   242,   143,   117,
     221,   469,   221,   265,   265,   473,   474,   218,   299,    19,
      98,   218,   218,   367,    94,  2523,    19,   264,    88,   323,
     372,   108,   108,   215,     6,  2046,   242,    10,   367,  1582,
     247,   223,   368,   572,   888,  1826,  2532,  2713,  2534,  1520,
    2352,  2353,  2354,  1941,  2356,  1988,  2379,  2776,  2382,  2290,
    1507,  2411,   520,  2590,   522,  1863,  2416,  1984,  2889,  2419,
    2911,  2872,  2871,  2892,  2433,  2377,   258,  2379,  2544,  2384,
    2382,  2620,  2384,  2972,  1164,  1572,  2945,  2569,    61,  2568,
    2015,  1992,  2016,  2395,  2491,  2492,  2922,  1149,  2973,  1207,
      26,  2790,   514,  2437,    77,  2407,  2022,  2409,   756,  2394,
    2764,  2846,  2028,  1466,  1880,  1465,   298,  2810,  2420,   143,
    2422,  2935,    95,   147,  2426,  2400,  2971,   557,  2044,  2740,
    1394,    19,  2879,   742,  2102,  2437,   318,  1830,   920,   742,
    1848,  1838,  1388,  2920,   919,  1815,  2062,   921,  1409,  1616,
    2066,   124,  2644,  2068,   336,   455,   129,  2188,  1559,  1841,
    1701,   343,   344,   345,  1781,  1783,  2377,  1670,  1348,  2085,
     143,  2087,    -1,     7,    -1,    -1,  2092,  2093,  2189,    13,
      -1,  2524,    -1,   365,    -1,    -1,   368,    -1,   370,   371,
      -1,    -1,    -1,   166,    -1,    -1,    -1,    -1,   656,  2115,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   665,    -1,    -1,
      -1,    -1,   670,    -1,    -1,    -1,    50,    -1,    -1,    -1,
      -1,  2523,    -1,   681,    -1,    -1,    -1,    -1,    -1,    -1,
    2532,  2533,  2534,    -1,  2577,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2545,    -1,    -1,    -1,   220,   706,    -1,
    2600,    -1,  2727,    -1,    -1,    -1,    -1,    -1,    92,  2561,
      -1,    -1,    -1,    97,    -1,  2276,   100,    16,    -1,    -1,
    2667,    -1,  2283,    -1,  2285,    24,  2763,    -1,    -1,    -1,
      29,    -1,  2679,  2680,  2600,   160,    -1,    -1,   680,   262,
      -1,  2302,    -1,  2643,   752,   268,  2307,  2308,    -1,    -1,
     273,   140,   760,  2219,  2220,    -1,    -1,    -1,    -1,    -1,
      -1,   145,  2614,    -1,    -1,    -1,    -1,    -1,  2620,    -1,
      -1,   160,    -1,    -1,  2626,   298,   299,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2636,    -1,    -1,   310,    -1,  2350,
    2351,    -1,   315,    -1,  2646,   220,    -1,    -1,    -1,    -1,
    2825,   324,  2654,    -1,    -1,    -1,    -1,  2659,    -1,    -1,
    2847,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     762,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   220,  2393,    -1,    -1,    -1,    -1,   136,    -1,    -1,
      -1,   140,    -1,  2790,    -1,   229,    -1,    -1,    -1,    -1,
      -1,   425,    -1,    -1,    -1,    -1,  2756,    -1,    -1,    -1,
      -1,   160,   161,    -1,    -1,  2717,    -1,    -1,   252,    -1,
      -1,   255,  2920,    -1,   173,    -1,    -1,    -1,    -1,    -1,
      -1,  2347,   456,    -1,    -1,    -1,    -1,  2739,   462,  2741,
    2756,    -1,    -1,   277,  2919,    -1,    16,  2363,    -1,    19,
      -1,    -1,    -1,    -1,    24,   204,    -1,  2373,   207,    29,
      -1,  2763,  2764,    -1,    -1,    -1,  2768,  2769,    -1,    -1,
      -1,   220,   680,   222,  2776,    -1,   351,    -1,    -1,   354,
     355,   356,  2957,   358,   359,   360,   361,   362,   363,    -1,
      -1,    -1,    -1,   885,   369,  2411,    -1,    -1,    -1,    -1,
    2416,    -1,    -1,  2419,    -1,    -1,    -1,    -1,  2519,    -1,
      -1,    -1,   351,    -1,    -1,   354,   355,   356,   542,   358,
     359,   360,   361,   362,   363,    -1,    24,    -1,    -1,    -1,
     369,    29,   281,   925,    -1,  2837,    -1,    -1,    -1,    -1,
    2551,  2552,    -1,   567,  2846,  2847,    -1,  2558,  2559,    -1,
      -1,  2562,  2563,    -1,   762,    -1,    -1,    -1,    -1,  2948,
     952,    -1,    -1,    -1,    -1,    -1,   136,    -1,    -1,    -1,
     140,  2873,    -1,    -1,   966,    -1,    16,    -1,    -1,  2881,
      20,    -1,    -1,    -1,    24,  2935,    -1,    -1,    -1,    29,
     160,   161,    -1,  2509,  2510,  2511,  2512,    -1,  2948,    -1,
      -1,  2903,   351,   173,    -1,   354,   355,   356,    -1,   358,
     359,   360,   361,   362,   363,    -1,  2627,    -1,  2920,    -1,
     369,  2971,    -1,   372,   648,   649,    -1,   160,    -1,   653,
      -1,    -1,    -1,    -1,   204,    -1,   660,   207,   136,    -1,
      -1,    -1,   140,  2945,    -1,    -1,    -1,    -1,    -1,    -1,
     220,    91,   222,    -1,    -1,    -1,   680,    -1,    -1,    -1,
      -1,    -1,   160,   161,    -1,    -1,    -1,    -1,    -1,    -1,
    2972,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,    -1,
      -1,   705,    -1,    -1,    -1,    -1,     8,   220,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   136,  1089,  1156,  2710,
     140,    23,    -1,  2714,    -1,    27,    -1,    -1,    -1,   207,
    2626,   281,    -1,  1105,    -1,    -1,   740,   925,    -1,    41,
     160,   161,   220,    -1,    -1,    -1,    -1,  2643,    -1,    -1,
      -1,    -1,  1124,   173,  1192,    -1,    -1,    -1,   762,    -1,
      -1,  1199,    -1,  1201,  1202,    -1,    -1,    -1,    -1,    -1,
    2761,    -1,    -1,    -1,    -1,  1147,    -1,    -1,   966,    -1,
     784,    -1,    -1,    -1,   204,    -1,    -1,   207,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     220,   351,   222,   281,   354,   355,   356,   811,   358,   359,
     360,   361,   362,   363,    -1,  1187,    -1,    -1,    -1,   369,
      -1,    -1,    -1,    -1,  1196,    -1,    -1,    -1,    -1,    -1,
      -1,  2727,    -1,  2729,   838,   839,    -1,   841,   351,    -1,
      -1,    -1,   355,   356,    -1,   358,   359,   360,   361,   362,
     363,    -1,   154,    -1,  2750,   859,   369,    -1,    -1,    -1,
      -1,   281,    -1,    -1,    -1,    -1,    -1,    -1,  2764,    -1,
      -1,    -1,    -1,   351,    -1,    -1,  2772,   355,   356,    -1,
     358,   359,   360,   361,   362,   363,    -1,    -1,    -1,    -1,
      -1,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1089,    -1,    -1,    -1,   325,  2802,     8,    -1,    -1,
     914,    -1,  2903,   917,   918,    -1,    -1,  1105,    -1,    -1,
      -1,   925,    -1,    -1,    -1,   929,    -1,    -1,    -1,  2825,
      -1,   351,    -1,    -1,   354,   355,   356,    -1,   358,   359,
     360,   361,   362,   363,    -1,    -1,    -1,    -1,   952,   369,
    2846,    -1,    -1,    -1,  2945,    -1,    -1,    58,    -1,  1147,
      -1,    -1,   966,    -1,    65,    66,    67,    -1,    -1,  1341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2972,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1428,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1436,  1187,
      -1,   102,    -1,    -1,  1442,    -1,    -1,    -1,  1196,    -1,
    1448,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    16,    -1,  2919,    -1,    -1,    -1,    -1,    -1,    24,
      -1,    -1,    -1,    -1,    29,    -1,    -1,    -1,    -1,   140,
    1478,    -1,  1480,    -1,   145,  1483,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1493,  1494,    -1,    -1,    -1,
      -1,  2957,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1509,  1510,  1511,    -1,  1513,    -1,    -1,  1516,  1517,
    1518,   182,    -1,    -1,  1522,  1089,    -1,  1525,  1460,    -1,
      -1,    -1,    -1,  1465,  1466,    -1,   197,   198,   199,   200,
     201,  1105,   203,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1124,   423,   117,    -1,    -1,    -1,    -1,   122,    -1,    -1,
     231,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   136,    -1,  1147,    -1,   140,  1150,    -1,    -1,    -1,
      -1,    -1,    -1,  1341,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   262,   680,    -1,    -1,   160,   161,    -1,    -1,    -1,
    1542,    -1,    -1,    -1,    -1,  1179,    -1,  1181,   173,    -1,
      -1,    -1,    -1,  1187,    -1,  1189,    -1,    -1,  1560,    -1,
      -1,    -1,  1196,   294,    -1,   296,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   506,    -1,    -1,    -1,    -1,   204,
      -1,   513,   207,    -1,    -1,    -1,   317,    -1,  1222,    -1,
      -1,    -1,   524,   324,   680,   220,   327,   222,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   543,    -1,    -1,   762,    -1,    -1,    -1,    -1,  1687,
      -1,    -1,  1256,  1257,    -1,    -1,   558,    -1,    -1,   561,
    1264,    -1,    -1,  1267,  1268,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   574,    -1,    -1,  1279,  1280,    -1,    -1,    -1,
      -1,    -1,    -1,  1287,    -1,    -1,   281,  1291,  1292,  1293,
    1294,    -1,    -1,    -1,    -1,    -1,    -1,  1301,  1302,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   762,    -1,    -1,  1681,
      -1,    -1,    -1,  1317,  1318,    -1,    -1,  1321,    -1,    -1,
      -1,  1325,    -1,    -1,    -1,  1329,    -1,    10,  1332,  1333,
    1334,  1335,  1336,  1337,  1338,  1339,  1340,  1341,    21,  1343,
      -1,    -1,    -1,    -1,  1348,    -1,    -1,  1351,    -1,    -1,
     652,    -1,    -1,    -1,  1542,    -1,   351,    -1,    41,   354,
     355,   356,    -1,   358,   359,   360,   361,   362,   363,    -1,
      -1,    -1,  1560,    -1,   369,    -1,    -1,    -1,    61,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1396,    -1,    77,    -1,    -1,   699,   700,   701,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   925,    -1,    -1,
      -1,    -1,    95,    -1,    -1,  1853,  1854,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1430,    10,    -1,    -1,
      -1,    -1,    -1,    -1,   952,    -1,    -1,    -1,    -1,    -1,
      -1,   124,  1446,    -1,    -1,    -1,   129,    -1,   966,  1887,
    1888,    -1,   754,    -1,    -1,    -1,  1460,    -1,    41,    -1,
     143,  1465,  1466,    -1,    -1,    -1,    -1,    -1,    -1,   925,
      53,    -1,    -1,   775,    -1,    -1,    59,    -1,    61,  1851,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  1681,    77,    -1,   952,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1880,  1881,
     966,  1883,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1898,    -1,  1900,    -1,
      -1,  1535,    -1,    -1,    -1,    -1,    -1,   220,  1542,    -1,
      -1,   124,    -1,    -1,    -1,   228,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1558,    -1,  1560,    -1,   241,    -1,
     143,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1940,    -1,
      -1,  1089,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   262,
      -1,    -1,    -1,   266,   167,   268,    -1,  1105,    -1,    -1,
     273,    -1,   894,    -1,    -1,    -1,    -1,    -1,  1970,    -1,
      -1,    -1,    -1,    -1,  2042,    -1,  1124,    -1,    -1,    -1,
      -1,    -1,  1616,    -1,    -1,   298,   299,    16,  1990,    -1,
      -1,  1625,    -1,    -1,    -1,    24,    -1,   310,    -1,  1147,
      29,    -1,   315,  1089,    -1,    -1,    -1,   220,    -1,    -1,
      -1,   324,    -1,    -1,  2016,    -1,    -1,    -1,  1652,  1105,
     333,    -1,    -1,    -1,  2026,    -1,    -1,    -1,   241,    -1,
      -1,    -1,    -1,  1851,    -1,  2037,  1670,    -1,  1124,  1187,
      -1,    -1,    -1,    -1,    -1,    -1,  2048,  1681,  1196,   262,
     982,    -1,    -1,   266,    -1,   268,    -1,    -1,    -1,    -1,
     273,  1147,    -1,    -1,    -1,    -1,  1700,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2079,    -1,    -1,
    1898,  2083,  1900,    -1,    -1,   298,   299,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   310,  1732,  1733,
      -1,  1187,   315,  1737,    -1,    -1,    -1,   136,    -1,    -1,
    1196,   140,    -1,    -1,    -1,  1749,  1750,  1751,  1752,    -1,
     333,    -1,  1940,    -1,  1758,    -1,  2128,    -1,    -1,    -1,
      -1,   160,   161,  1767,  1768,    -1,  1770,    -1,   680,    -1,
      -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,  1782,    -1,
    1784,    -1,  1970,    -1,  1788,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2164,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1805,    -1,    -1,    -1,   204,  2178,    -1,   207,    -1,
      -1,  1815,    -1,  1817,  1818,    -1,    -1,    -1,    -1,    -1,
      -1,   220,    -1,  1341,    -1,    -1,    -1,    -1,  1832,    -1,
    2202,    -1,    -1,    -1,  1838,    -1,    -1,    -1,  2026,    -1,
      -1,    -1,  1846,  1847,  1848,    -1,    -1,  1851,    -1,  2037,
     762,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1862,  2297,
    2298,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1880,  1881,    -1,  1883,
      -1,    -1,   281,    -1,    -1,  1341,    -1,    -1,    -1,    -1,
      -1,  2079,    -1,    -1,  1898,  2083,  1900,    -1,  1200,    -1,
      -1,  1203,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2352,  2353,  2354,    -1,  2356,    -1,
      -1,  2293,    -1,  1225,  1226,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1237,  1940,    -1,    -1,    -1,
    2128,    -1,  1460,    -1,    -1,    -1,    -1,  1465,  1466,    -1,
      -1,    -1,   351,    -1,    -1,   354,   355,   356,    -1,   358,
     359,   360,   361,   362,   363,    -1,  1970,    -1,    -1,    -1,
     369,    -1,    -1,    -1,    -1,    -1,  2164,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1990,    -1,    -1,    -1,
    2178,    -1,    -1,    -1,    -1,    -1,  2368,    -1,    -1,    -1,
      -1,    24,    -1,    -1,  1460,    -1,    29,    -1,    -1,  1465,
    1466,  2015,  2016,   925,  2202,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2026,    -1,  1542,    -1,    -1,    -1,    -1,   680,
      -1,    -1,    -1,  2037,    -1,    -1,    -1,    -1,    -1,    -1,
     952,    -1,  1560,    -1,  2048,  1347,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   966,    -1,    -1,    -1,  2062,    -1,
      -1,    -1,  2066,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2079,    -1,    -1,    -1,  2083,
      -1,   104,    -1,    -1,    -1,    -1,  1542,    -1,    -1,  2093,
      -1,    -1,  1394,    -1,    -1,  2533,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1560,  2293,    -1,    -1,    -1,    -1,
      -1,   762,    -1,   136,    -1,    -1,    -1,   140,    -1,    -1,
      -1,  2125,    -1,    16,  2128,  2497,    -1,    -1,    -1,    -1,
      -1,    24,    -1,  2137,    -1,    -1,    29,   160,   161,  2143,
      -1,    -1,    -1,  2147,    -1,    -1,    -1,    -1,  2152,    -1,
     173,  2155,  2156,  2157,  2158,  2159,  2160,  2161,  2162,  2163,
    2164,  2165,    -1,  1681,    -1,  2169,  2170,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2178,    -1,  2614,  1089,    -1,  2183,
    2368,    -1,  2620,    -1,   207,    -1,  2190,    -1,    -1,  2193,
      -1,  2195,    -1,  1105,    -1,    -1,    -1,   220,  2202,  2203,
    2204,  2205,    -1,    -1,    -1,  2209,    -1,    -1,  2212,    -1,
      -1,    -1,  1124,  1515,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1681,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1147,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   136,    -1,    -1,    -1,   140,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   281,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   160,   161,    -1,
      -1,    -1,    -1,    -1,   925,  1187,  2648,    -1,  1580,    -1,
     173,    -1,    -1,    -1,  1196,    -1,    -1,    -1,    -1,  2293,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2670,    -1,
    1602,   952,    -1,    -1,    -1,    -1,  2678,  1609,    -1,  2497,
      -1,   204,    -1,    -1,   207,   966,    -1,    -1,    -1,    -1,
      -1,    -1,   680,    -1,    -1,    -1,    -1,   220,   351,   222,
      -1,    -1,    -1,  1851,    -1,   358,   359,   360,   361,   362,
     363,    -1,    -1,    -1,    -1,    -1,   369,    -1,    -1,    -1,
      -1,    -1,    -1,  2357,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1880,  1881,  2368,  1883,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   680,    -1,    -1,    -1,    -1,    -1,    -1,
    1898,    -1,  1900,    -1,    -1,    -1,    -1,    -1,   281,    -1,
      -1,    -1,    -1,    -1,    -1,  1851,    -1,    -1,    -1,  2837,
      -1,    -1,    -1,    -1,   762,    -1,    -1,  2411,    -1,    -1,
      -1,    -1,  2416,    -1,    -1,  2419,    -1,    -1,    -1,  2791,
      -1,    -1,  1940,    -1,  1880,  1881,    -1,  1883,    -1,  1341,
      -1,    -1,    -1,    -1,    -1,  2873,    -1,    -1,  1089,    -1,
      -1,    -1,  1898,    -1,  1900,    -1,  2450,    -1,    -1,    -1,
      -1,    -1,  1970,    -1,  1105,   762,    -1,    -1,   351,    -1,
    2648,   354,   355,   356,    -1,   358,   359,   360,   361,   362,
     363,    -1,  1990,  1124,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,  2670,    -1,  1940,    -1,    -1,  2491,  2492,    -1,
    2678,    -1,  2496,  2497,    -1,    -1,  1147,    -1,  2016,  2503,
    2504,    -1,    -1,  2507,    -1,    -1,    -1,  1809,  2026,    -1,
      -1,    -1,    -1,    -1,  1970,    -1,    -1,    -1,    -1,  2037,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2900,    -1,
    2048,    -1,    -1,    -1,  1990,    -1,  1187,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1196,    -1,    -1,  1460,    -1,
      -1,    -1,    -1,  1465,  1466,    -1,    -1,    -1,    -1,    -1,
    2016,  2079,    -1,    -1,    -1,  2083,    -1,   925,    -1,    -1,
    2026,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2037,    -1,    -1,    -1,  2589,    -1,    -1,  2960,    -1,
      -1,    -1,  2048,    -1,   952,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2791,    -1,    -1,    -1,    -1,   966,    -1,
    2128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   925,    -1,
      -1,    -1,  2626,  2079,    -1,    -1,    -1,  2083,    -1,    -1,
    1542,    -1,    -1,    -1,    -1,  2639,    -1,    -1,    -1,  2643,
      -1,    -1,    -1,    -1,  2648,   952,  2164,    -1,  1560,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   966,
    2178,    -1,    -1,  2667,    -1,    -1,  2670,    -1,    -1,    -1,
      -1,    -1,  2128,    -1,  2678,  2679,  2680,    -1,    -1,  2683,
      -1,    -1,    -1,    -1,  2202,    -1,  2690,  2691,   680,    -1,
    1341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2708,    -1,    -1,    -1,  2164,    -1,
      -1,    -1,  2900,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2022,    -1,  2178,  2727,    -1,    -1,  2028,    -1,    -1,    -1,
      -1,  1089,    -1,    -1,    -1,    -1,    -1,    16,    -1,    -1,
      19,    -1,  2044,    -1,    -1,    24,  2202,  1105,    -1,    -1,
      29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2764,  2765,    -1,    -1,    -1,    -1,  1124,    -1,    -1,  1681,
     762,    -1,  2960,    -1,    -1,  2293,    -1,    -1,    -1,    -1,
      -1,    -1,  1089,  2085,    -1,  2087,  2790,  2791,    -1,  1147,
    2092,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1105,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1460,
      -1,    -1,    -1,  2115,  1465,  1466,    -1,  1124,    -1,    -1,
      -1,  2825,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1187,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2293,  1196,    -1,
    1147,    -1,  2846,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2368,    -1,    -1,    -1,    -1,    -1,    -1,   136,    -1,    -1,
      -1,   140,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1187,   160,   161,    -1,    -1,    -1,    -1,    -1,    -1,  1196,
      -1,  1542,    -1,    -1,   173,    -1,  2900,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1560,
      -1,    -1,  2368,    -1,    -1,  2919,    -1,  2219,  2220,    -1,
      -1,    -1,    -1,    -1,    -1,   204,    -1,   680,   207,    -1,
      -1,    -1,    -1,   925,    -1,    -1,    -1,    -1,    -1,  1851,
      -1,   220,    -1,   222,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2957,    -1,    -1,  2960,    -1,    -1,    -1,
     952,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1880,  1881,
      -1,  1883,    -1,    -1,   966,    -1,    -1,    -1,    -1,  2497,
      -1,    -1,    -1,  1341,    -1,    -1,  1898,    -1,  1900,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   281,    -1,    -1,    -1,    -1,    -1,    -1,   762,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1940,    -1,
    1681,    -1,    -1,    -1,  1341,    -1,    -1,    -1,    -1,    -1,
      -1,  2497,    -1,    -1,    -1,  2347,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1970,    -1,
      -1,  2363,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2373,   351,    -1,    -1,   354,   355,   356,  1990,   358,
     359,   360,   361,   362,   363,    -1,    -1,    -1,    -1,    -1,
     369,    -1,    -1,    -1,    -1,    -1,    -1,  1089,    -1,    -1,
      -1,    -1,  1460,    -1,  2016,    -1,    -1,  1465,  1466,    -1,
      -1,    -1,    -1,  1105,  2026,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2037,    -1,    -1,    -1,    -1,
    2648,    -1,  1124,    -1,    -1,    -1,  2048,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
      29,    -1,  2670,  1460,    -1,  1147,    -1,    -1,  1465,  1466,
    2678,    -1,    -1,    -1,    -1,    -1,    -1,  2079,    -1,    -1,
      -1,  2083,   925,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1542,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2648,    -1,    -1,  1187,    -1,    -1,    -1,   952,
    1851,    -1,  1560,    -1,  1196,    -1,    -1,  2509,  2510,  2511,
    2512,    -1,    -1,   966,  2670,    -1,  2128,    -1,    24,    -1,
      -1,    -1,  2678,    29,    -1,   104,    -1,    -1,    -1,  1880,
    1881,    -1,  1883,    -1,    -1,  1542,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1898,    -1,  1900,
      -1,    -1,  2164,  1560,    -1,    -1,    -1,   136,    -1,    -1,
      -1,   140,    -1,    16,    -1,    -1,  2178,    -1,    -1,    -1,
      -1,    24,    -1,  2791,    -1,    -1,    29,    -1,    -1,    -1,
      -1,   160,   161,    -1,    -1,    -1,    -1,    -1,    -1,  1940,
    2202,    -1,    -1,    -1,   173,    -1,    -1,    -1,   104,    -1,
      -1,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,
      -1,    -1,    -1,    -1,    29,    -1,    -1,    -1,    -1,  1970,
      -1,    -1,    -1,  1681,    -1,    -1,    -1,    -1,   207,    -1,
     136,    -1,    -1,    -1,   140,  2791,  1089,    -1,    -1,  1990,
      -1,   220,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1341,
      -1,    -1,  1105,    -1,   160,   161,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2016,    -1,   173,    -1,    -1,
      -1,  1124,    -1,    -1,  1681,  2026,    -1,    -1,    -1,    -1,
      -1,  2293,  2900,   136,    -1,    -1,  2037,   140,    -1,    -1,
      -1,    -1,    -1,    -1,  1147,    -1,    -1,  2048,    -1,    -1,
      -1,   207,   281,    -1,    -1,    -1,    -1,   160,   161,    -1,
      -1,    -1,    -1,    -1,   220,    -1,    -1,    -1,    -1,    -1,
     173,   136,    -1,    -1,    -1,   140,    -1,  2729,  2079,    -1,
      -1,    -1,  2083,    -1,  1187,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2960,  1196,  2900,   160,   161,    -1,  2750,    -1,
      -1,   204,    -1,    -1,   207,    -1,  2368,    -1,   173,    -1,
      -1,    -1,    -1,   542,    -1,    -1,    -1,   220,  1460,   222,
    2772,    -1,   351,  1465,  1466,   281,    -1,  2128,    -1,   358,
     359,   360,   361,   362,   363,    -1,    -1,    -1,   567,   204,
     369,    -1,   207,  1851,    -1,    -1,    -1,    -1,    -1,    -1,
    2802,    -1,    -1,    -1,  2960,   220,    -1,   222,    -1,    -1,
      -1,    -1,    -1,  2164,    -1,    -1,    -1,   232,    -1,    -1,
      -1,    -1,  1880,  1881,    -1,  1883,    -1,  2178,   281,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1898,    -1,  1900,    -1,  1851,   351,    -1,    -1,    -1,    -1,
    1542,  2202,   358,   359,   360,   361,   362,   363,    -1,    -1,
      -1,    -1,    -1,   369,    -1,    -1,   281,    -1,  1560,   648,
      -1,    -1,   325,  1880,  1881,    -1,  1883,    -1,    -1,    -1,
      -1,    -1,  1940,    -1,    -1,  2497,    -1,    -1,  1341,    -1,
      -1,  1898,    -1,  1900,    -1,    -1,    -1,    -1,   351,    -1,
      -1,   354,   355,   356,    -1,   358,   359,   360,   361,   362,
     363,    -1,  1970,    -1,    -1,    -1,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1990,  1940,    -1,    -1,   351,    -1,    -1,   354,
     355,   356,  2293,   358,   359,   360,   361,   362,   363,    -1,
       3,    -1,    -1,    -1,   369,    -1,    -1,    -1,  2016,    -1,
      13,    14,    15,  1970,    -1,    -1,    -1,    -1,  2026,    -1,
      -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,  2037,
      -1,    -1,    -1,  1990,    -1,    -1,    -1,    -1,    -1,  1681,
    2048,    -1,    -1,    -1,    47,    -1,    49,    50,    -1,    -1,
      -1,    54,    55,    -1,    -1,   784,    -1,  1460,    -1,  2016,
      63,    64,  1465,  1466,    -1,    -1,    -1,  2368,    -1,  2026,
      -1,  2079,    -1,    -1,    -1,  2083,    79,    -1,    -1,    82,
    2037,    -1,   811,    24,    -1,    88,  2648,    -1,    29,    -1,
      -1,  2048,    -1,    -1,    97,    -1,    -1,    -1,    -1,    -1,
     103,    -1,    -1,    -1,    -1,   108,    -1,   110,  2670,   838,
     839,   114,   841,    -1,    -1,    -1,  2678,    -1,    -1,    -1,
    2128,    -1,  2079,   126,    -1,    -1,  2083,    -1,    -1,    -1,
     859,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1542,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   152,
      -1,    -1,    -1,    -1,    -1,    -1,  2164,  1560,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2178,  2128,   175,   176,    -1,    -1,    -1,    -1,   181,    -1,
      -1,    -1,    -1,    -1,    -1,   914,   189,    -1,   917,   918,
      -1,    -1,    -1,    -1,  2202,   136,  2497,    -1,    -1,   140,
      -1,    -1,    -1,   206,    -1,    -1,    -1,  2164,    -1,  1851,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   160,
     161,  2178,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2791,
      -1,    -1,   173,   236,    -1,    -1,    -1,    -1,  1880,  1881,
      -1,  1883,    -1,   246,    -1,  2202,   249,    -1,   251,    -1,
      -1,    -1,   255,    -1,    -1,    -1,  1898,   260,  1900,    -1,
     263,    -1,    -1,   204,   267,    -1,   207,    -1,    -1,   272,
      -1,    -1,    -1,    -1,   277,    -1,    -1,   280,  1681,   220,
      -1,   855,    -1,   286,    -1,  2293,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1940,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     313,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   321,    24,
     323,    -1,    -1,   326,    29,    -1,   329,    -1,  1970,   903,
      -1,    -1,    -1,    -1,    -1,    -1,  2293,    -1,  2900,    -1,
     281,    -1,    -1,    -1,    -1,    -1,    -1,  2648,  1990,    -1,
      -1,    -1,    -1,    -1,    -1,    16,    -1,    -1,    19,    -1,
    2368,    -1,    -1,    24,   367,    -1,    -1,    -1,    29,  2670,
      -1,    -1,    -1,    -1,  2016,    -1,    -1,  2678,    -1,    -1,
      -1,    -1,    -1,    -1,  2026,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2037,    -1,    -1,  2960,   104,
      -1,    -1,    -1,    -1,    -1,    -1,  2048,    -1,    -1,    -1,
     351,  2368,    -1,   354,   355,   356,    -1,   358,   359,   360,
     361,   362,   363,    -1,    -1,    -1,    -1,    -1,   369,  1003,
      -1,   136,    -1,    -1,    -1,   140,    -1,  2079,    -1,    -1,
      -1,  2083,    -1,    -1,    -1,    -1,    -1,    -1,  1851,    -1,
      -1,    -1,    -1,    -1,    -1,   160,   161,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   173,    -1,
      -1,    -1,    -1,    -1,    -1,   136,    -1,  1880,  1881,   140,
    1883,    -1,    -1,    -1,    -1,    -1,  2128,    -1,    -1,  2497,
    2791,    -1,    -1,    -1,    -1,  1898,    -1,  1900,    -1,   160,
     161,    -1,   207,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   173,    -1,    -1,   220,    -1,    -1,    -1,    -1,
      -1,    -1,  2164,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1264,  2178,  1940,    -1,  1268,
    2497,    -1,    -1,   204,    -1,    -1,   207,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1287,   220,
    2202,   222,  1291,    -1,    -1,  1294,    -1,  1970,    -1,    -1,
      -1,    -1,  1301,  1302,    -1,    -1,   281,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1990,  1317,    -1,
      -1,    -1,  1321,    -1,    -1,    -1,  1325,    -1,    -1,  2900,
    1329,    -1,    -1,  1332,  1333,  1334,  1335,  1336,  1337,  1338,
    1339,  1340,    -1,  2016,  1343,    -1,    -1,    -1,    -1,  1348,
     281,    -1,    -1,  2026,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2037,    16,  1210,    -1,    -1,    -1,
    2648,    -1,    -1,    24,    -1,  2048,   351,    -1,    29,    -1,
      -1,  2293,    -1,   358,   359,   360,   361,   362,   363,  2960,
      -1,    -1,  2670,    -1,   369,    -1,    -1,  1396,    -1,    -1,
    2678,    -1,    -1,    -1,    -1,    -1,  2079,    -1,    -1,    -1,
    2083,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1262,    -1,
     351,  2648,    -1,   354,   355,   356,    -1,   358,   359,   360,
     361,   362,   363,    -1,    -1,    -1,    -1,    -1,   369,    -1,
      -1,    -1,  1286,  2670,    -1,    -1,    -1,  1446,  1292,    -1,
      -1,  2678,    -1,    -1,    -1,  2128,  2368,    -1,    -1,    16,
      -1,  1305,  1306,    -1,    -1,  1309,    -1,    24,    -1,    -1,
      -1,   122,    29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   136,    -1,    -1,    -1,   140,
      -1,  2164,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1346,    -1,    -1,  2178,    -1,    -1,    -1,   160,
     161,    -1,    -1,  2791,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   173,    -1,    -1,    -1,    -1,    -1,    -1,  2202,
      24,    -1,    -1,    -1,    -1,    29,  1535,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   204,    -1,    -1,   207,    -1,    -1,  1558,
      -1,  1405,    -1,    -1,  2791,    -1,    -1,    -1,  1412,   220,
    1414,   222,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   136,
      -1,    -1,    -1,   140,    -1,  2497,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   160,   161,    -1,    -1,    -1,    -1,    -1,
     104,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    16,
    2293,    -1,  2900,    -1,    -1,    -1,  1625,    24,    -1,    -1,
     281,    -1,    29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   136,    -1,    -1,    -1,   140,   204,    -1,    -1,
     207,    -1,    -1,  1652,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   220,    -1,   222,   160,   161,    -1,    -1,
      -1,  1670,    -1,  2900,    -1,    -1,    -1,    -1,    -1,   173,
      -1,    -1,  2960,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2368,    -1,    -1,    -1,    -1,
     351,  1700,    -1,   354,   355,   356,    -1,   358,   359,   360,
     361,   362,   363,   207,    -1,    -1,    -1,    -1,   369,    -1,
      -1,    -1,    -1,    -1,   281,    -1,   220,    -1,    -1,    -1,
      -1,    -1,    -1,  2960,    -1,    -1,  2648,    -1,    -1,   136,
      -1,    -1,    -1,   140,    -1,    -1,    -1,    -1,    -1,    -1,
    1749,    -1,  1751,  1752,    -1,    -1,    -1,    -1,  2670,  1758,
      -1,    -1,    -1,   160,   161,    -1,  2678,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,
      -1,    -1,    -1,  1782,    -1,  1784,    -1,   281,    -1,  1788,
      -1,    -1,    -1,    -1,   351,    -1,    -1,   354,   355,   356,
      -1,   358,   359,   360,   361,   362,   363,   204,    -1,   366,
     207,    -1,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   220,  2497,   222,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  1832,    -1,    -1,    -1,    -1,    -1,  1838,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1846,  1847,  1848,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,    -1,  1703,
      -1,  1705,    -1,  1862,   358,   359,   360,   361,   362,   363,
      -1,    -1,    -1,    -1,    -1,   369,    -1,    -1,    -1,  2791,
      -1,    -1,    -1,  1727,   281,    -1,  1730,    -1,  1732,  1733,
    1734,    -1,    -1,  1737,    -1,    16,    -1,  1741,    -1,    -1,
      -1,    -1,    -1,    24,  1748,    -1,    -1,    -1,    29,  1753,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1763,
      -1,    16,    -1,  1767,  1768,  1769,    -1,    -1,    -1,    24,
      -1,    -1,    -1,    -1,    29,    -1,  1780,    -1,    -1,    -1,
      -1,    -1,    -1,  1787,    -1,  1789,  1790,  1791,  1792,  1793,
    1794,  1795,  1796,  1797,   351,  1799,    -1,   354,   355,   356,
      -1,   358,   359,   360,   361,   362,   363,    -1,    -1,    -1,
      -1,   368,   369,    -1,    -1,  2648,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2900,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2670,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2678,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   136,    -1,    -1,    -1,   140,
      -1,    -1,    -1,    -1,    -1,    -1,  1870,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   160,
     161,   136,    -1,    -1,    -1,   140,    -1,    -1,  2960,    -1,
      -1,    -1,   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   160,   161,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   173,    -1,
      -1,    -1,    -1,   204,    -1,    -1,   207,    24,    -1,    -1,
      -1,    -1,    29,    -1,    -1,    -1,    -1,    -1,    -1,   220,
      -1,   222,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   204,
      -1,    -1,   207,    -1,    -1,    -1,    -1,    -1,  2791,    -1,
      -1,    -1,    -1,    -1,  1968,   220,  2125,   222,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2137,    -1,
      -1,    -1,    -1,    -1,  2143,    -1,    -1,    -1,  2147,  1993,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     281,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2169,  2170,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      16,    -1,   303,    -1,    -1,    -1,   281,    -1,    24,    -1,
      -1,  2190,    -1,    29,  2193,    -1,  2195,    -1,    -1,   136,
      -1,    -1,    -1,   140,  2203,    -1,    16,    -1,    -1,    -1,
    2209,    -1,    -1,  2212,    24,    -1,    -1,    -1,    -1,    29,
      -1,    -1,    -1,   160,   161,    -1,    -1,  2900,    -1,    -1,
     351,    -1,  2076,   354,   355,   356,   173,   358,   359,   360,
     361,   362,   363,    -1,    -1,    -1,    -1,  2091,   369,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   351,    -1,    -1,   354,
     355,   356,    -1,   358,   359,   360,   361,   362,   363,    -1,
     207,    -1,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,
    2124,    -1,    -1,   220,    -1,    -1,    -1,  2960,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     136,    -1,    -1,    -1,   140,    -1,  2150,  2151,  2152,    -1,
      -1,  2155,  2156,  2157,  2158,  2159,  2160,  2161,  2162,  2163,
      -1,  2165,  2166,    -1,   160,   161,   136,    -1,    -1,    -1,
     140,    -1,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
      -1,    -1,  2186,    -1,   281,    -1,    -1,  2191,  2192,    -1,
     160,   161,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2204,  2205,  2206,   173,  2208,    -1,    -1,  2211,   204,    -1,
      -1,   207,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      24,    -1,    -1,    -1,   220,    29,   222,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   204,    -1,    -1,   207,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2252,    -1,
     220,    -1,   222,    -1,   351,    -1,    -1,   354,   355,   356,
      -1,   358,   359,   360,   361,   362,   363,    -1,    -1,    -1,
      -1,    -1,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   281,    -1,    -1,    16,    -1,
      -1,  2450,    -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,
      -1,    29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   281,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   136,    -1,    -1,    -1,   140,  2496,    -1,    -1,
      -1,    -1,    -1,    -1,  2503,  2504,    -1,    -1,  2507,    -1,
      -1,    -1,    -1,  2357,    -1,   351,   160,   161,   354,   355,
     356,    -1,   358,   359,   360,   361,   362,   363,    -1,   173,
      -1,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   351,    -1,    -1,   354,   355,   356,    -1,   358,   359,
     360,   361,   362,   363,    -1,    -1,    -1,    -1,   368,   369,
     204,    -1,    -1,   207,    -1,    -1,    -1,    -1,   136,    -1,
      -1,    -1,   140,    -1,    -1,    -1,   220,    -1,   222,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2589,    -1,   160,   161,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   173,    -1,  2451,    -1,    -1,
      -1,    -1,  2456,  2457,    -1,  2459,    -1,  2461,    -1,    -1,
      -1,  2465,  2466,  2467,  2468,  2469,  2470,  2471,  2472,  2473,
      -1,  2475,  2476,  2477,    -1,    -1,   204,   281,    -1,   207,
    2639,    -1,    -1,    -1,    -1,    -1,  2490,  2491,  2492,  2493,
      -1,  2495,   220,    -1,   222,    -1,  2500,  2501,  2502,    -1,
      -1,  2505,    -1,    -1,  2508,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2683,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2691,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   351,    -1,  2708,
     354,   355,   356,   281,   358,   359,   360,   361,   362,   363,
      -1,    -1,    -1,    -1,   368,   369,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2591,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2765,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   351,    -1,    -1,   354,   355,   356,    -1,
     358,   359,   360,   361,   362,   363,    -1,    -1,    -1,    -1,
     368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2660,    -1,    -1,    -1,
      -1,    -1,    -1,  2667,    -1,    -1,    -1,    -1,    -1,  2673,
    2674,  2675,    -1,    -1,    -1,  2679,  2680,  2681,  2682,    -1,
    2684,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2732,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2775,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2789,  2790,    -1,    -1,    -1,
      -1,  2795,  2796,  2797,    -1,  2799,    -1,    -1,    -1,    -1,
      -1,  2805,    -1,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    39,
    2844,    -1,    42,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,  2857,    54,    55,    56,    57,    58,    -1,
      60,    61,    62,    63,    -1,    65,    66,    67,    -1,    69,
      -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,
      80,    81,    82,    -1,    84,    -1,    86,    87,    88,    89,
      90,    -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,
     100,   101,   102,    -1,   104,    -1,   106,   107,   108,   109,
     110,   111,   112,    -1,   114,   115,   116,    -1,   118,    -1,
     120,    -1,    -1,    -1,   124,   125,    -1,   127,   128,    -1,
     130,    -1,   132,   133,   134,   135,    -1,   137,   138,   139,
      -1,   141,   142,   143,   144,   145,   146,    -1,    -1,   149,
     150,   151,   152,   153,   154,   155,    -1,   157,    -1,   159,
      -1,    -1,   162,    -1,   164,   165,   166,   167,   168,    -1,
     170,    -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,    -1,   195,   196,   197,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,    -1,   208,    -1,
     210,   211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,
     220,   221,    -1,    -1,   224,    -1,    -1,   227,   228,   229,
     230,   231,    -1,   233,   234,   235,   236,   237,    -1,   239,
     240,   241,   242,   243,   244,   245,   246,   247,    -1,   249,
     250,   251,   252,   253,   254,   255,   256,   257,    -1,   259,
     260,    -1,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,   275,    -1,   277,   278,   279,
     280,    -1,   282,   283,    -1,   285,   286,   287,   288,   289,
     290,   291,   292,   293,   294,    -1,   296,   297,    -1,   299,
     300,   301,   302,    -1,   304,   305,    -1,    -1,   308,   309,
     310,   311,    -1,   313,   314,   315,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,   325,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,    -1,    -1,   337,   338,   339,
     340,   341,   342,    -1,    -1,    -1,   346,    -1,    -1,    -1,
      -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
      10,    11,    12,    13,    -1,   365,    -1,    -1,    18,    -1,
     370,    21,    22,    -1,    24,    25,    26,    27,    28,    29,
      30,    31,    32,    33,    -1,    35,    36,    37,    38,    39,
      40,    41,    42,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    -1,    54,    55,    56,    57,    58,    -1,
      60,    61,    62,    63,    -1,    65,    66,    67,    68,    69,
      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
      80,    81,    82,    -1,    84,    -1,    86,    87,    88,    89,
      90,    -1,    92,    93,    -1,    95,    96,    97,    98,    -1,
     100,   101,   102,    -1,   104,    -1,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,    -1,   123,   124,   125,    -1,   127,   128,    -1,
     130,    -1,   132,   133,   134,   135,   136,   137,   138,   139,
      -1,   141,   142,   143,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,    -1,   157,    -1,   159,
     160,   161,   162,   163,   164,   165,   166,   167,   168,    -1,
     170,   171,   172,   173,    -1,   175,   176,   177,   178,   179,
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
     210,   211,   212,   213,    -1,    -1,   216,   217,    -1,    -1,
     220,   221,    -1,    -1,   224,   225,   226,   227,   228,   229,
     230,   231,    -1,   233,   234,   235,   236,   237,    -1,   239,
     240,   241,   242,   243,   244,   245,   246,   247,    -1,   249,
     250,   251,   252,   253,   254,   255,   256,   257,    -1,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,   275,   276,   277,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,   287,   288,   289,
     290,   291,   292,   293,   294,    -1,   296,   297,    -1,   299,
     300,   301,   302,    -1,   304,   305,    -1,    -1,   308,   309,
     310,   311,   312,   313,   314,   315,   316,   317,    -1,   319,
     320,   321,   322,   323,   324,    -1,   326,   327,   328,   329,
     330,   331,   332,   333,   334,    -1,    -1,   337,   338,   339,
     340,   341,   342,    -1,    -1,    -1,   346,   347,   348,   349,
     350,   351,   352,   353,    -1,    -1,    -1,    -1,   358,   359,
     360,    -1,    -1,    -1,    -1,    -1,    -1,   367,   368,     3,
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
      -1,    -1,    -1,    -1,    18,    -1,    -1,    21,    22,    -1,
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
      -1,    35,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    -1,    47,    48,    49,    50,    51,    -1,    -1,
      54,    55,    56,    57,    58,    -1,    60,    61,    62,    63,
      -1,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    75,    76,    77,    78,    79,    80,    81,    82,    -1,
      84,    -1,    86,    87,    88,    89,    90,    -1,    92,    -1,
      -1,    95,    96,    97,    98,    -1,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,    -1,   118,    -1,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,    -1,   132,   133,
     134,   135,   136,   137,   138,   139,    -1,   141,   142,   143,
     144,   145,   146,    -1,   148,   149,   150,   151,   152,   153,
     154,   155,    -1,   157,    -1,   159,   160,   161,   162,   163,
     164,   165,   166,   167,   168,    -1,   170,   171,   172,   173,
      -1,   175,   176,   177,   178,   179,   180,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
     204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
      -1,    -1,   216,   217,    -1,    -1,   220,   221,    -1,    -1,
     224,   225,   226,   227,   228,   229,   230,   231,    -1,   233,
     234,   235,   236,   237,    -1,   239,   240,   241,   242,   243,
     244,   245,   246,   247,    -1,   249,   250,   251,   252,   253,
     254,   255,   256,   257,    -1,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
      -1,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     294,    -1,   296,   297,    -1,   299,   300,   301,   302,    -1,
     304,   305,    -1,    -1,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,    -1,   319,   320,   321,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,    -1,    -1,   337,   338,   339,   340,   341,   342,    -1,
      -1,    -1,   346,   347,   348,   349,   350,   351,   352,   353,
      -1,    -1,    -1,    -1,   358,   359,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   367,   368,     3,     4,     5,     6,     7,
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
      -1,    19,    -1,    21,    22,    -1,    24,    -1,    26,    27,
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
      38,    39,    -1,    -1,    42,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    -1,    -1,    54,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    -1,    65,    66,    67,
      68,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,
      78,    79,    80,    81,    82,    -1,    84,    -1,    86,    87,
      88,    89,    90,    -1,    92,    -1,    -1,    95,    96,    97,
      98,    -1,   100,   101,   102,    -1,   104,    -1,   106,   107,
     108,   109,   110,   111,   112,    -1,   114,   115,   116,    -1,
     118,    -1,   120,    -1,    -1,   123,   124,   125,    -1,   127,
     128,    -1,   130,    -1,   132,   133,   134,   135,    -1,   137,
     138,   139,    -1,   141,   142,   143,   144,   145,   146,    -1,
     148,   149,   150,   151,   152,   153,   154,   155,    -1,   157,
      -1,   159,    -1,    -1,   162,   163,   164,   165,   166,   167,
     168,    -1,   170,   171,   172,    -1,    -1,   175,   176,   177,
      -1,    -1,   180,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,    -1,   195,   196,   197,
     198,   199,   200,   201,   202,   203,    -1,   205,   206,    -1,
     208,    -1,   210,   211,   212,   213,    -1,    -1,   216,    -1,
      -1,    -1,   220,   221,    -1,    -1,   224,    -1,    -1,   227,
     228,   229,   230,   231,    -1,   233,   234,   235,   236,   237,
      -1,   239,   240,   241,   242,   243,   244,   245,   246,   247,
      -1,   249,   250,   251,   252,   253,   254,   255,   256,   257,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,   275,    -1,   277,
     278,   279,   280,    -1,   282,   283,    -1,   285,   286,   287,
     288,   289,   290,   291,   292,   293,   294,    -1,   296,   297,
      -1,   299,   300,   301,   302,    -1,   304,   305,    -1,    -1,
     308,   309,   310,   311,    -1,   313,   314,   315,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,    -1,    -1,   337,
     338,   339,   340,   341,   342,    -1,    -1,    -1,   346,    -1,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
     368,    24,    25,    26,    27,    28,    29,    30,    31,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    -1,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    -1,
      63,    -1,    65,    66,    67,    68,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,    -1,   110,   111,    -1,
      -1,   114,   115,   116,    -1,   118,    -1,   120,   121,    -1,
     123,   124,   125,    -1,   127,    -1,    -1,   130,    -1,   132,
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,   146,    -1,   148,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,   160,   161,   162,
     163,   164,   165,   166,   167,   168,    -1,    -1,   171,   172,
     173,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,   206,   207,   208,    -1,    -1,   211,   212,
     213,    -1,    -1,   216,    -1,    -1,    -1,   220,   221,    -1,
      -1,   224,   225,   226,    -1,   228,   229,   230,   231,    -1,
      -1,    -1,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,   281,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
      -1,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,    -1,   310,    -1,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,    -1,   330,   331,   332,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,    -1,     3,     4,     5,     6,     7,
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
      18,    -1,    -1,    21,    22,   368,    24,    25,    26,    27,
      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
      38,    39,    40,    41,    42,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    -1,    -1,    54,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    -1,    65,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
      78,    79,    80,    81,    82,    -1,    84,    -1,    86,    87,
      88,    89,    90,    -1,    92,    -1,    -1,    95,    96,    97,
      98,    -1,   100,   101,   102,    -1,   104,    -1,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,    -1,
     118,    -1,   120,   121,   122,   123,   124,   125,    -1,   127,
     128,    -1,   130,    -1,   132,   133,   134,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,   144,   145,   146,    -1,
     148,   149,   150,   151,   152,   153,   154,   155,    -1,   157,
      -1,   159,   160,   161,   162,   163,   164,   165,   166,   167,
     168,   169,   170,   171,   172,   173,    -1,   175,   176,   177,
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
     208,   209,   210,   211,   212,   213,    -1,    -1,   216,   217,
      -1,    -1,   220,   221,    -1,    -1,   224,   225,   226,   227,
     228,   229,   230,   231,    -1,   233,   234,   235,   236,   237,
      -1,   239,   240,   241,   242,   243,   244,   245,   246,   247,
      -1,   249,   250,   251,   252,   253,   254,   255,   256,   257,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,    -1,   285,   286,   287,
     288,   289,   290,   291,   292,   293,   294,    -1,   296,   297,
      -1,   299,   300,   301,   302,    -1,   304,   305,    -1,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,   319,   320,   321,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,   332,   333,   334,    -1,    -1,   337,
     338,   339,   340,   341,   342,    -1,    -1,    -1,   346,   347,
     348,   349,   350,   351,   352,   353,    -1,    -1,    -1,    -1,
     358,   359,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    18,    -1,    -1,    21,    22,
      -1,    24,    25,    26,    27,    28,    29,    30,    31,    32,
      33,    -1,    35,    36,    37,    38,    39,    40,    41,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,    -1,   118,    -1,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,   148,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,   160,   161,   162,
     163,   164,   165,   166,   167,   168,    -1,   170,   171,   172,
     173,    -1,   175,   176,   177,   178,   179,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
     213,    -1,    -1,   216,   217,    -1,    -1,   220,   221,    -1,
      -1,   224,   225,   226,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,    -1,   319,   320,   321,   322,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,   347,   348,   349,   350,   351,   352,
     353,    -1,    -1,    -1,    -1,   358,   359,   360,    -1,    -1,
      -1,    -1,    -1,    -1,   367,     3,     4,     5,     6,     7,
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
      18,    -1,    -1,    21,    22,    -1,    24,    25,    26,    27,
      28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
      38,    39,    40,    41,    42,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    -1,    -1,    54,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    -1,    65,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
      78,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
      88,    89,    90,    -1,    92,    -1,    -1,    95,    96,    97,
      98,    -1,   100,   101,   102,    -1,   104,    -1,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,    -1,
     118,    -1,   120,   121,    -1,   123,   124,   125,    -1,   127,
     128,    -1,   130,    -1,   132,   133,   134,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,   144,   145,   146,    -1,
     148,   149,   150,   151,   152,   153,   154,   155,    -1,   157,
      -1,   159,   160,   161,   162,   163,   164,   165,   166,   167,
     168,    -1,   170,   171,   172,   173,    -1,   175,   176,   177,
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
     208,   209,   210,   211,   212,   213,    -1,    -1,   216,   217,
      -1,    -1,   220,   221,    -1,    -1,   224,   225,   226,   227,
     228,   229,   230,   231,    -1,   233,   234,   235,   236,   237,
      -1,   239,   240,   241,   242,   243,   244,   245,   246,   247,
      -1,   249,   250,   251,   252,   253,   254,   255,   256,   257,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,    -1,   285,   286,   287,
     288,   289,   290,   291,   292,   293,   294,    -1,   296,   297,
      -1,   299,   300,   301,   302,    -1,   304,   305,    -1,    -1,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,   319,   320,   321,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,   332,   333,   334,    -1,    -1,   337,
     338,   339,   340,   341,   342,    -1,    -1,    -1,   346,   347,
     348,   349,   350,   351,   352,   353,    -1,    -1,    -1,    -1,
     358,   359,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    18,    -1,    -1,    21,    22,
      -1,    24,    25,    26,    27,    28,    29,    30,    31,    32,
      33,    -1,    35,    36,    37,    38,    39,    40,    41,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,    -1,   118,    -1,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,   148,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,   160,   161,   162,
     163,   164,   165,   166,   167,   168,    -1,   170,   171,   172,
     173,    -1,   175,   176,   177,   178,   179,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
     213,    -1,    -1,   216,   217,    -1,    -1,   220,   221,    -1,
      -1,   224,   225,   226,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,    -1,   319,   320,   321,   322,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,   347,   348,   349,   350,   351,   352,
     353,    -1,    -1,    -1,    -1,   358,   359,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   367,     3,     4,     5,     6,     7,
       8,     9,    10,    11,    12,    13,    -1,    -1,    -1,    -1,
      18,    -1,    -1,    21,    22,    -1,    24,    25,    26,    27,
      28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
      38,    39,    40,    41,    42,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    -1,    -1,    54,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    -1,    65,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
      78,    79,    80,    81,    82,    -1,    84,    -1,    86,    87,
      88,    89,    90,    -1,    92,    -1,    -1,    95,    96,    97,
      98,    -1,   100,   101,   102,    -1,   104,    -1,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,    -1,
     118,    -1,   120,   121,    -1,   123,   124,   125,    -1,   127,
     128,    -1,   130,    -1,   132,   133,   134,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,   144,   145,   146,    -1,
     148,   149,   150,   151,   152,   153,   154,   155,    -1,   157,
      -1,   159,   160,   161,   162,   163,   164,   165,   166,   167,
     168,    -1,   170,   171,   172,   173,    -1,   175,   176,   177,
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
     208,   209,   210,   211,   212,   213,    -1,    -1,   216,   217,
      -1,    -1,   220,   221,    -1,    -1,   224,   225,   226,   227,
     228,   229,   230,   231,    -1,   233,   234,   235,   236,   237,
      -1,   239,   240,   241,   242,   243,   244,   245,   246,   247,
      -1,   249,   250,   251,   252,   253,   254,   255,   256,   257,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,    -1,   285,   286,   287,
     288,   289,   290,   291,   292,   293,   294,    -1,   296,   297,
      -1,   299,   300,   301,   302,    -1,   304,   305,    -1,    -1,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,   319,   320,   321,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,   332,   333,   334,    -1,    -1,   337,
     338,   339,   340,   341,   342,    -1,    -1,    -1,   346,   347,
     348,   349,   350,   351,   352,   353,    -1,    -1,    -1,    -1,
     358,   359,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    18,    -1,    -1,    21,    22,
      -1,    24,    25,    26,    27,    28,    29,    30,    31,    32,
      33,    -1,    35,    36,    37,    38,    39,    40,    41,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,    -1,   118,    -1,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,   148,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,   160,   161,   162,
     163,   164,   165,   166,   167,   168,    -1,   170,   171,   172,
     173,    -1,   175,   176,   177,   178,   179,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
     213,    -1,    -1,   216,   217,    -1,    -1,   220,   221,    -1,
      -1,   224,   225,   226,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,    -1,   319,   320,   321,   322,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,   347,   348,   349,   350,   351,   352,
     353,    -1,    -1,    -1,    -1,   358,   359,    -1,    -1,    -1,
      -1,    -1,   365,    -1,   367,     3,     4,     5,     6,     7,
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
      18,    -1,    -1,    21,    22,    -1,    24,    25,    26,    27,
      28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
      38,    39,    40,    41,    42,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    -1,    -1,    54,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    -1,    65,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
      78,    79,    80,    81,    82,    -1,    84,    -1,    86,    87,
      88,    89,    90,    -1,    92,    -1,    -1,    95,    96,    97,
      98,    -1,   100,   101,   102,    -1,   104,    -1,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,    -1,
     118,    -1,   120,   121,   122,   123,   124,   125,    -1,   127,
     128,    -1,   130,    -1,   132,   133,   134,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,   144,   145,   146,    -1,
     148,   149,   150,   151,   152,   153,   154,   155,    -1,   157,
      -1,   159,   160,   161,   162,   163,   164,   165,   166,   167,
     168,    -1,   170,   171,   172,   173,    -1,   175,   176,   177,
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
     208,   209,   210,   211,   212,   213,    -1,    -1,   216,   217,
      -1,    -1,   220,   221,    -1,    -1,   224,   225,   226,   227,
     228,   229,   230,   231,    -1,   233,   234,   235,   236,   237,
      -1,   239,   240,   241,   242,   243,   244,   245,   246,   247,
      -1,   249,   250,   251,   252,   253,   254,   255,   256,   257,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,    -1,   285,   286,   287,
     288,   289,   290,   291,   292,   293,   294,    -1,   296,   297,
      -1,   299,   300,   301,   302,    -1,   304,   305,    -1,    -1,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,   319,   320,   321,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,   332,   333,   334,    -1,    -1,   337,
     338,   339,   340,   341,   342,    -1,    -1,    -1,   346,   347,
     348,   349,   350,   351,   352,   353,    -1,    -1,    -1,    -1,
     358,   359,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    18,    -1,    -1,    21,    22,
      -1,    24,    25,    26,    27,    28,    29,    30,    31,    32,
      33,    -1,    35,    36,    37,    38,    39,    40,    41,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,    -1,   118,    -1,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,   148,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,   160,   161,   162,
     163,   164,   165,   166,   167,   168,    -1,   170,   171,   172,
     173,    -1,   175,   176,   177,   178,   179,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
     213,    -1,    -1,   216,   217,    -1,    -1,   220,   221,    -1,
      -1,   224,   225,   226,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,    -1,   319,   320,   321,   322,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,   347,   348,   349,   350,   351,   352,
     353,    -1,    -1,    -1,    -1,   358,   359,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   367,     3,     4,     5,     6,     7,
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
      18,    -1,    -1,    21,    22,    -1,    24,    25,    26,    27,
      28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
      38,    39,    40,    41,    42,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    -1,    -1,    54,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    -1,    65,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
      78,    79,    80,    81,    82,    -1,    84,    -1,    86,    87,
      88,    89,    90,    -1,    92,    -1,    -1,    95,    96,    97,
      98,    -1,   100,   101,   102,    -1,   104,    -1,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,    -1,
     118,    -1,   120,   121,    -1,   123,   124,   125,    -1,   127,
     128,    -1,   130,    -1,   132,   133,   134,   135,   136,   137,
     138,   139,    -1,   141,   142,   143,   144,   145,   146,    -1,
     148,   149,   150,   151,   152,   153,   154,   155,    -1,   157,
      -1,   159,   160,   161,   162,   163,   164,   165,   166,   167,
     168,    -1,   170,   171,   172,   173,    -1,   175,   176,   177,
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,   200,   201,   202,   203,    -1,   205,   206,   207,
     208,   209,   210,   211,   212,   213,    -1,    -1,   216,   217,
      -1,    -1,   220,   221,    -1,    -1,   224,   225,   226,   227,
     228,   229,   230,   231,    -1,   233,   234,   235,   236,   237,
      -1,   239,   240,   241,   242,   243,   244,   245,   246,   247,
      -1,   249,   250,   251,   252,   253,   254,   255,   256,   257,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,    -1,   285,   286,   287,
     288,   289,   290,   291,   292,   293,   294,    -1,   296,   297,
      -1,   299,   300,   301,   302,    -1,   304,   305,    -1,    -1,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,   320,   321,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,   332,   333,   334,    -1,    -1,   337,
     338,   339,   340,   341,   342,    -1,    -1,    -1,   346,   347,
     348,   349,   350,   351,   352,   353,    -1,    -1,    -1,    -1,
     358,   359,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    18,    -1,    -1,    21,    22,
      -1,    24,    25,    26,    27,    28,    -1,    30,    31,    32,
      33,    -1,    35,    36,    37,    38,    39,    40,    41,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,    -1,    -1,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,    -1,   118,    -1,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,   148,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,   160,   161,   162,
     163,   164,   165,   166,   167,   168,    -1,   170,   171,   172,
      -1,    -1,   175,   176,   177,   178,   179,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,   207,   208,   209,   210,   211,   212,
     213,    -1,    -1,   216,   217,    -1,    -1,   220,   221,    -1,
      -1,   224,   225,   226,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,    -1,   319,   320,   321,   322,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,   347,   348,   349,   350,   351,   352,
     353,    -1,    -1,    -1,    -1,   358,   359,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   367,     3,     4,     5,     6,     7,
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
      18,    -1,    -1,    21,    22,    -1,    24,    25,    26,    27,
      28,    -1,    30,    31,    32,    33,    -1,    35,    36,    37,
      38,    39,    40,    41,    42,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    -1,    -1,    54,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    -1,    65,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
      78,    79,    80,    81,    82,    -1,    84,    -1,    86,    87,
      88,    89,    90,    -1,    92,    -1,    -1,    95,    96,    97,
      98,    -1,   100,   101,   102,    -1,    -1,    -1,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,    -1,
     118,    -1,   120,   121,    -1,   123,   124,   125,    -1,   127,
     128,    -1,   130,    -1,   132,   133,   134,   135,    -1,   137,
     138,   139,    -1,   141,   142,   143,   144,   145,   146,    -1,
     148,   149,   150,   151,   152,   153,   154,   155,    -1,   157,
      -1,   159,   160,   161,   162,   163,   164,   165,   166,   167,
     168,    -1,   170,   171,   172,    -1,    -1,   175,   176,   177,
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,   200,   201,   202,   203,    -1,   205,   206,   207,
     208,   209,   210,   211,   212,   213,    -1,    -1,   216,   217,
      -1,    -1,   220,   221,    -1,    -1,   224,   225,   226,   227,
     228,   229,   230,   231,    -1,   233,   234,   235,   236,   237,
      -1,   239,   240,   241,   242,   243,   244,   245,   246,   247,
      -1,   249,   250,   251,   252,   253,   254,   255,   256,   257,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,   275,   276,   277,
     278,   279,   280,    -1,   282,   283,    -1,   285,   286,   287,
     288,   289,   290,   291,   292,   293,   294,    -1,   296,   297,
      -1,   299,   300,   301,   302,    -1,   304,   305,    -1,    -1,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
      -1,    -1,   320,   321,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,   332,   333,   334,    -1,    -1,   337,
     338,   339,   340,   341,   342,    -1,    -1,    -1,   346,   347,
     348,   349,   350,   351,   352,   353,    -1,    -1,    -1,    -1,
     358,   359,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    25,    26,    27,    28,    29,    30,    31,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    41,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,   148,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,   160,   161,   162,
     163,   164,   165,   166,   167,   168,    -1,   170,   171,   172,
     173,    -1,   175,   176,   177,   178,   179,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,   207,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,   217,    -1,   219,   220,   221,    -1,
      -1,   224,   225,   226,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,   367,    24,    25,    26,    27,    28,
      29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
      39,    -1,    41,    42,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    -1,    -1,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    -1,    65,    66,    67,    68,
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
      79,    80,    81,    82,    -1,    84,    -1,    86,    87,    88,
      89,    90,    -1,    92,    -1,    -1,    95,    96,    97,    98,
      -1,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,   111,   112,    -1,   114,   115,   116,    -1,   118,
      -1,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,    -1,   132,   133,   134,   135,   136,   137,   138,
     139,    -1,   141,   142,   143,   144,   145,   146,    -1,   148,
     149,   150,   151,   152,   153,   154,   155,    -1,   157,    -1,
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
      -1,   170,   171,   172,   173,    -1,   175,   176,   177,   178,
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
     199,   200,   201,   202,   203,    -1,   205,   206,   207,   208,
      -1,   210,   211,   212,   213,    -1,    -1,   216,   217,    -1,
     219,   220,   221,    -1,    -1,   224,   225,   226,   227,   228,
     229,   230,   231,    -1,   233,   234,   235,   236,   237,    -1,
     239,   240,   241,   242,   243,   244,   245,   246,   247,    -1,
     249,   250,   251,   252,   253,   254,   255,   256,   257,    -1,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,    -1,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,    -1,   296,   297,    -1,
     299,   300,   301,   302,    -1,   304,   305,    -1,    -1,   308,
     309,   310,   311,    -1,   313,   314,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,    -1,    -1,   337,   338,
     339,   340,   341,   342,    -1,    -1,    -1,   346,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    12,    13,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,   367,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
      35,    36,    37,    38,    39,    -1,    41,    42,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    -1,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    -1,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    -1,    84,
      -1,    86,    87,    88,    89,    90,    -1,    92,    -1,    -1,
      95,    96,    97,    98,    -1,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,   111,   112,    -1,   114,
     115,   116,    -1,   118,    -1,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,    -1,   132,   133,   134,
     135,   136,   137,   138,   139,    -1,   141,   142,   143,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,    -1,   157,    -1,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,    -1,   170,   171,   172,   173,    -1,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,    -1,   210,   211,   212,   213,    -1,
      -1,   216,   217,    -1,    -1,   220,   221,    -1,    -1,   224,
     225,   226,   227,   228,   229,   230,   231,    -1,   233,   234,
     235,   236,   237,    -1,   239,   240,   241,   242,   243,   244,
     245,   246,   247,    -1,   249,   250,   251,   252,   253,   254,
     255,   256,   257,    -1,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      -1,   296,   297,    -1,   299,   300,   301,   302,    -1,   304,
     305,    -1,    -1,   308,   309,   310,   311,    -1,   313,   314,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
      -1,    -1,   337,   338,   339,   340,   341,   342,    -1,    -1,
      -1,   346,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,   367,    24,    -1,    26,    27,    28,    -1,    30,
      -1,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    -1,    65,    66,    67,    -1,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
     111,   112,    -1,   114,   115,   116,    -1,   118,    -1,   120,
      -1,    -1,    -1,   124,   125,    -1,   127,   128,    -1,   130,
      -1,   132,   133,   134,   135,    -1,   137,   138,   139,    -1,
     141,   142,   143,   144,   145,   146,    -1,    -1,   149,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,    -1,
      -1,   162,    -1,   164,   165,   166,   167,   168,    -1,   170,
      -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,    -1,   208,    -1,   210,
     211,   212,   213,    -1,    -1,   216,   217,    -1,    -1,   220,
     221,    -1,    -1,   224,    -1,    -1,   227,   228,   229,   230,
     231,    -1,   233,   234,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
      -1,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
      -1,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,    -1,   296,   297,    -1,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,   309,   310,
     311,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    21,    22,   367,    24,    -1,    26,
      27,    28,    -1,    30,    -1,    32,    33,    -1,    35,    36,
      37,    38,    39,    -1,    -1,    42,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    -1,    -1,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    -1,    65,    66,
      67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    84,    -1,    86,
      87,    88,    89,    90,    -1,    92,    -1,    -1,    95,    96,
      97,    98,    -1,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,   111,   112,    -1,   114,   115,   116,
      -1,   118,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,
     127,   128,    -1,   130,    -1,   132,   133,   134,   135,    -1,
     137,   138,   139,    -1,   141,   142,   143,   144,   145,   146,
      -1,    -1,   149,   150,   151,   152,   153,   154,   155,    -1,
     157,    -1,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,   168,    -1,   170,    -1,   172,    -1,    -1,   175,   176,
     177,    -1,    -1,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,   202,   203,    -1,   205,   206,
      -1,   208,    -1,   210,   211,   212,   213,    -1,    -1,   216,
      -1,    -1,    -1,   220,   221,    -1,    -1,   224,    -1,    -1,
     227,   228,   229,   230,   231,    -1,   233,   234,   235,   236,
     237,    -1,   239,   240,   241,   242,   243,   244,   245,   246,
     247,    -1,   249,   250,   251,   252,   253,   254,   255,   256,
     257,    -1,   259,   260,    -1,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,    -1,
     277,   278,   279,   280,    -1,   282,   283,    -1,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,    -1,   296,
     297,    -1,   299,   300,   301,   302,    -1,   304,   305,    -1,
      -1,   308,   309,   310,   311,    -1,   313,   314,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,    -1,    -1,
     337,   338,   339,   340,   341,   342,    -1,    -1,    -1,   346,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
     367,    24,    -1,    26,    27,    28,    -1,    30,    -1,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,
      -1,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,    -1,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,
      -1,   164,   165,   166,   167,   168,    -1,   170,    -1,   172,
      -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,    -1,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,    -1,    -1,    -1,   220,   221,    -1,
      -1,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,    -1,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,   367,    24,    -1,    26,    27,    28,
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
      39,    -1,    -1,    42,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    -1,    -1,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    -1,    65,    66,    67,    -1,
      69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
      79,    80,    81,    82,    -1,    84,    -1,    86,    87,    88,
      89,    90,    -1,    92,    -1,    -1,    95,    96,    97,    98,
      -1,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,   111,   112,    -1,   114,   115,   116,    -1,   118,
      -1,   120,    -1,    -1,    -1,   124,   125,    -1,   127,   128,
      -1,   130,    -1,   132,   133,   134,   135,    -1,   137,   138,
     139,    -1,   141,   142,   143,   144,   145,   146,    -1,    -1,
     149,   150,   151,   152,   153,   154,   155,    -1,   157,    -1,
     159,    -1,    -1,   162,    -1,   164,   165,   166,   167,   168,
      -1,   170,    -1,   172,    -1,    -1,   175,   176,   177,    -1,
      -1,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,   202,   203,    -1,   205,   206,    -1,   208,
      -1,   210,   211,   212,   213,    -1,    -1,   216,    -1,    -1,
      -1,   220,   221,    -1,    -1,   224,    -1,    -1,   227,   228,
     229,   230,   231,    -1,   233,   234,   235,   236,   237,    -1,
     239,   240,   241,   242,   243,   244,   245,   246,   247,    -1,
     249,   250,   251,   252,   253,   254,   255,   256,   257,    -1,
     259,   260,    -1,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,    -1,   277,   278,
     279,   280,    -1,   282,   283,    -1,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,    -1,   296,   297,    -1,
     299,   300,   301,   302,    -1,   304,   305,    -1,    -1,   308,
     309,   310,   311,    -1,   313,   314,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,    -1,    -1,   337,   338,
     339,   340,   341,   342,    -1,    -1,    -1,   346,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,     3,
       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    46,    47,    48,    49,    50,    -1,    52,    53,
      54,    55,    56,    57,    58,    59,    60,    61,    -1,    63,
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
     104,   105,   106,   107,   108,    -1,   110,   111,    -1,   113,
     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
     124,   125,   126,   127,    -1,   129,   130,   131,   132,   133,
     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
     144,   145,   146,   147,   148,    -1,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
     164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
     204,   205,   206,   207,   208,   209,    -1,   211,   212,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
      -1,   225,   226,    -1,   228,   229,   230,   231,   232,    -1,
      -1,   235,   236,   237,   238,   239,   240,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,    -1,
     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,    -1,   310,    -1,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,   325,   326,   327,   328,    -1,   330,   331,   332,   333,
     334,   335,   336,   337,   338,   339,   340,   341,   342,    -1,
      -1,    -1,   346,   347,   348,    -1,    -1,   351,   352,    -1,
     354,   355,   356,    -1,   358,   359,   360,   361,   362,   363,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,
      -1,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,    -1,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,
      -1,   164,   165,   166,   167,   168,    -1,   170,    -1,   172,
      -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,    -1,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,    -1,    -1,    -1,   220,   221,    -1,
      -1,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,    -1,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,   351,    -1,
      -1,   354,   355,   356,    -1,   358,   359,   360,   361,   362,
     363,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,
      22,    -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,
      32,    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,
      42,    43,    44,    45,    -1,    47,    48,    49,    50,    51,
      -1,    -1,    54,    55,    56,    57,    58,    -1,    60,    61,
      62,    63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,
      -1,    -1,    -1,    75,    76,    77,    78,    79,    80,    81,
      82,    -1,    84,    -1,    86,    87,    88,    89,    90,    -1,
      92,    -1,    -1,    95,    96,    97,    98,    -1,   100,   101,
     102,    -1,   104,    -1,   106,   107,   108,   109,   110,   111,
     112,    -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,
      -1,    -1,   124,   125,    -1,   127,   128,    -1,   130,    -1,
     132,   133,   134,   135,    -1,   137,   138,   139,    -1,   141,
     142,   143,   144,   145,   146,    -1,    -1,   149,   150,   151,
     152,   153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,
     162,    -1,   164,   165,   166,   167,   168,    -1,   170,    -1,
     172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
      -1,   193,    -1,   195,   196,   197,   198,   199,   200,   201,
     202,   203,    -1,   205,   206,    -1,   208,    -1,   210,   211,
     212,   213,    -1,    -1,   216,    -1,    -1,    -1,   220,   221,
      -1,    -1,   224,    -1,    -1,   227,   228,   229,   230,   231,
      -1,   233,   234,   235,   236,   237,    -1,   239,   240,   241,
     242,   243,   244,   245,   246,   247,    -1,   249,   250,   251,
     252,   253,   254,   255,   256,   257,    -1,   259,   260,    -1,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,   275,    -1,   277,   278,   279,   280,    -1,
     282,   283,    -1,   285,   286,   287,   288,   289,   290,   291,
     292,   293,   294,    -1,   296,   297,    -1,   299,   300,   301,
     302,    -1,   304,   305,    -1,    -1,   308,   309,   310,   311,
      -1,   313,   314,   315,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,   326,   327,   328,   329,   330,   331,
      -1,   333,   334,    -1,    -1,   337,   338,   339,   340,   341,
     342,    -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,   351,
      -1,    -1,   354,   355,   356,    -1,   358,   359,   360,   361,
     362,   363,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    -1,    24,    -1,    26,    27,    28,    -1,    30,
      -1,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    -1,    65,    66,    67,    -1,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
     111,   112,    -1,   114,   115,   116,    -1,   118,    -1,   120,
      -1,    -1,    -1,   124,   125,    -1,   127,   128,    -1,   130,
      -1,   132,   133,   134,   135,    -1,   137,   138,   139,    -1,
     141,   142,   143,   144,   145,   146,    -1,    -1,   149,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,    -1,
      -1,   162,    -1,   164,   165,   166,   167,   168,    -1,   170,
      -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,    -1,   208,    -1,   210,
     211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,   220,
     221,    -1,    -1,   224,    -1,    -1,   227,   228,   229,   230,
     231,    -1,   233,   234,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
      -1,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
      -1,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,    -1,   296,   297,    -1,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,   309,   310,
     311,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,
     351,    -1,    -1,   354,   355,   356,    -1,   358,   359,   360,
     361,   362,   363,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    39,
      -1,    -1,    42,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    -1,    54,    55,    56,    57,    58,    -1,
      60,    61,    62,    63,    -1,    65,    66,    67,    -1,    69,
      -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,
      80,    81,    82,    -1,    84,    -1,    86,    87,    88,    89,
      90,    -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,
     100,   101,   102,    -1,   104,    -1,   106,   107,   108,   109,
     110,   111,   112,    -1,   114,   115,   116,    -1,   118,    -1,
     120,    -1,    -1,    -1,   124,   125,    -1,   127,   128,    -1,
     130,    -1,   132,   133,   134,   135,    -1,   137,   138,   139,
      -1,   141,   142,   143,   144,   145,   146,    -1,    -1,   149,
     150,   151,   152,   153,   154,   155,    -1,   157,    -1,   159,
      -1,    -1,   162,    -1,   164,   165,   166,   167,   168,    -1,
     170,    -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,    -1,   195,   196,   197,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,    -1,   208,    -1,
     210,   211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,
     220,   221,    -1,    -1,   224,    -1,    -1,   227,   228,   229,
     230,   231,    -1,   233,   234,   235,   236,   237,    -1,   239,
     240,   241,   242,   243,   244,   245,   246,   247,    -1,   249,
     250,   251,   252,   253,   254,   255,   256,   257,    -1,   259,
     260,    -1,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,   275,    -1,   277,   278,   279,
     280,    -1,   282,   283,    -1,   285,   286,   287,   288,   289,
     290,   291,   292,   293,   294,    -1,   296,   297,    -1,   299,
     300,   301,   302,    -1,   304,   305,    -1,    -1,   308,   309,
     310,   311,    -1,   313,   314,   315,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,   326,   327,   328,   329,
     330,   331,    -1,   333,   334,    -1,    -1,   337,   338,   339,
     340,   341,   342,    -1,    -1,    -1,   346,    -1,    -1,    -1,
      -1,   351,    -1,    -1,   354,   355,   356,    -1,   358,   359,
     360,   361,   362,   363,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,    28,
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
      39,    -1,    -1,    42,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    -1,    -1,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    -1,    65,    66,    67,    -1,
      69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
      79,    80,    81,    82,    -1,    84,    -1,    86,    87,    88,
      89,    90,    -1,    92,    -1,    -1,    95,    96,    97,    98,
      -1,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,   111,   112,    -1,   114,   115,   116,    -1,   118,
      -1,   120,    -1,    -1,    -1,   124,   125,    -1,   127,   128,
      -1,   130,    -1,   132,   133,   134,   135,    -1,   137,   138,
     139,    -1,   141,   142,   143,   144,   145,   146,    -1,    -1,
     149,   150,   151,   152,   153,   154,   155,    -1,   157,    -1,
     159,    -1,    -1,   162,    -1,   164,   165,   166,   167,   168,
      -1,   170,    -1,   172,    -1,    -1,   175,   176,   177,    -1,
      -1,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,   202,   203,    -1,   205,   206,    -1,   208,
      -1,   210,   211,   212,   213,    -1,    -1,   216,    -1,    -1,
      -1,   220,   221,    -1,    -1,   224,    -1,    -1,   227,   228,
     229,   230,   231,    -1,   233,   234,   235,   236,   237,    -1,
     239,   240,   241,   242,   243,   244,   245,   246,   247,    -1,
     249,   250,   251,   252,   253,   254,   255,   256,   257,    -1,
     259,   260,    -1,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,    -1,   277,   278,
     279,   280,    -1,   282,   283,    -1,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,    -1,   296,   297,    -1,
     299,   300,   301,   302,    -1,   304,   305,    -1,    -1,   308,
     309,   310,   311,    -1,   313,   314,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,    -1,    -1,   337,   338,
     339,   340,   341,   342,    -1,    -1,    -1,   346,    -1,    -1,
      -1,    -1,   351,    -1,    -1,   354,   355,   356,    -1,   358,
     359,   360,   361,   362,   363,     3,     4,     5,     6,     7,
       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
     328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
     338,   339,   340,   341,   342,    -1,    -1,    -1,   346,     3,
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
      -1,    -1,   360,    -1,    -1,    -1,    -1,    21,    22,    -1,
      24,    -1,    26,    27,    28,    -1,    30,    -1,    32,    33,
      -1,    35,    36,    37,    38,    39,    -1,    -1,    42,    43,
      44,    45,    -1,    47,    48,    49,    50,    51,    -1,    -1,
      54,    55,    56,    57,    58,    -1,    60,    61,    62,    63,
      -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,    -1,
      -1,    75,    76,    77,    78,    79,    80,    81,    82,    -1,
      84,    -1,    86,    87,    88,    89,    90,    -1,    92,    -1,
      -1,    95,    96,    97,    98,    -1,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,   111,   112,    -1,
     114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,    -1,
     124,   125,    -1,   127,   128,    -1,   130,    -1,   132,   133,
     134,   135,    -1,   137,   138,   139,    -1,   141,   142,   143,
     144,   145,   146,    -1,    -1,   149,   150,   151,   152,   153,
     154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,    -1,
     164,   165,   166,   167,   168,    -1,   170,    -1,   172,    -1,
      -1,   175,   176,   177,    -1,    -1,   180,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,   191,    -1,   193,
     194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
      -1,   205,   206,    -1,   208,    -1,   210,   211,   212,   213,
      -1,    -1,   216,   217,    -1,    -1,   220,   221,    -1,    -1,
     224,    -1,    -1,   227,   228,   229,   230,   231,    -1,   233,
     234,   235,   236,   237,    -1,   239,   240,   241,   242,   243,
     244,   245,   246,   247,    -1,   249,   250,   251,   252,   253,
     254,   255,   256,   257,    -1,   259,   260,    -1,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,    -1,   277,   278,   279,   280,    -1,   282,   283,
      -1,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     294,    -1,   296,   297,    -1,   299,   300,   301,   302,    -1,
     304,   305,    -1,    -1,   308,   309,   310,   311,    -1,   313,
     314,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
      -1,    -1,   326,   327,   328,   329,   330,   331,    -1,   333,
     334,    -1,    -1,   337,   338,   339,   340,   341,   342,    -1,
      -1,    -1,   346,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    12,    13,    -1,    -1,   360,    -1,    -1,    -1,
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    39,
      -1,    -1,    42,    43,    44,    45,    -1,    47,    48,    49,
      50,    -1,    -1,    -1,    54,    55,    56,    57,    58,    -1,
      60,    61,    -1,    63,    -1,    65,    66,    67,    -1,    69,
      -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,
      80,    81,    82,    -1,    84,    -1,    86,    87,    88,    89,
      90,    -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,
     100,   101,   102,    -1,   104,    -1,   106,   107,   108,    -1,
     110,   111,    -1,    -1,   114,   115,   116,    -1,   118,    -1,
     120,    -1,    -1,    -1,   124,   125,    -1,   127,    -1,    -1,
     130,    -1,   132,   133,   134,   135,    -1,   137,   138,   139,
      -1,   141,   142,   143,   144,   145,   146,    -1,    -1,    -1,
     150,   151,   152,   153,   154,   155,    -1,   157,    -1,   159,
      -1,    -1,   162,    -1,   164,   165,   166,   167,   168,    -1,
      -1,    -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,    -1,   195,   196,   197,   198,   199,
     200,   201,    -1,   203,    -1,   205,   206,    -1,   208,    -1,
      -1,   211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,
     220,   221,    -1,    -1,    -1,    -1,    -1,    -1,   228,   229,
     230,   231,    -1,    -1,    -1,   235,   236,   237,    -1,   239,
     240,   241,   242,   243,   244,   245,   246,   247,    -1,   249,
     250,   251,   252,   253,   254,   255,   256,   257,    -1,   259,
     260,    -1,   262,   263,    -1,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,   275,    -1,   277,   278,   279,
     280,    -1,   282,   283,    -1,   285,   286,   287,   288,   289,
     290,   291,   292,    -1,   294,    -1,   296,   297,    -1,   299,
     300,   301,   302,    -1,   304,   305,    -1,    -1,   308,    -1,
     310,    -1,    -1,   313,   314,   315,   316,   317,    -1,    -1,
     320,   321,   322,   323,    -1,    -1,   326,   327,   328,    -1,
     330,   331,    -1,   333,   334,    -1,    -1,   337,   338,   339,
     340,   341,   342,    -1,    -1,    -1,   346,     3,     4,     5,
       6,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
     360,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,
      26,    27,    28,    -1,    30,    -1,    32,    33,    -1,    35,
      36,    37,    38,    39,    -1,    -1,    42,    43,    44,    45,
      -1,    47,    48,    49,    50,    -1,    -1,    -1,    54,    55,
      56,    57,    58,    -1,    60,    61,    -1,    63,    -1,    65,
      66,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    75,
      76,    77,    78,    79,    80,    81,    82,    -1,    84,    -1,
      86,    87,    88,    89,    90,    -1,    92,    -1,    -1,    95,
      96,    97,    98,    -1,   100,   101,   102,    -1,   104,    -1,
     106,   107,   108,    -1,   110,   111,    -1,    -1,   114,   115,
     116,    -1,   118,    -1,   120,    -1,    -1,    -1,   124,   125,
      -1,   127,    -1,    -1,   130,    -1,   132,   133,   134,   135,
      -1,   137,   138,   139,    -1,   141,   142,   143,   144,   145,
     146,    -1,    -1,    -1,   150,   151,   152,   153,   154,   155,
      -1,   157,    -1,   159,    -1,    -1,   162,    -1,   164,   165,
     166,   167,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,
     176,   177,    -1,    -1,   180,   181,   182,   183,   184,   185,
     186,   187,   188,   189,   190,   191,    -1,   193,    -1,   195,
     196,   197,   198,   199,   200,   201,    -1,   203,    -1,   205,
     206,    -1,   208,    -1,    -1,   211,   212,   213,    -1,    -1,
     216,    -1,    -1,    -1,   220,   221,    -1,    -1,    -1,    -1,
      -1,    -1,   228,   229,   230,   231,    -1,    -1,    -1,   235,
     236,   237,    -1,   239,   240,   241,   242,   243,   244,   245,
     246,   247,    -1,   249,   250,   251,   252,   253,   254,   255,
     256,   257,    -1,   259,   260,    -1,   262,   263,    -1,   265,
     266,   267,   268,   269,   270,   271,    -1,   273,   274,   275,
      -1,   277,   278,   279,   280,    -1,   282,   283,    -1,   285,
     286,   287,   288,   289,   290,   291,   292,    -1,   294,    -1,
     296,   297,    -1,   299,   300,   301,   302,    -1,   304,   305,
      -1,    -1,   308,    -1,   310,    -1,    -1,   313,   314,   315,
     316,   317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,
     326,   327,   328,    -1,   330,   331,    -1,   333,   334,    -1,
      -1,   337,   338,   339,   340,   341,   342,    -1,    -1,    -1,
     346,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
      12,    13,    -1,    -1,   360,    -1,    -1,    -1,    -1,    21,
      22,    -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,
      32,    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,
      42,    43,    44,    45,    -1,    47,    48,    49,    50,    51,
      -1,    -1,    54,    55,    56,    57,    58,    -1,    60,    61,
      62,    63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,
      -1,    -1,    -1,    75,    76,    77,    78,    79,    80,    81,
      82,    83,    84,    -1,    86,    87,    88,    89,    90,    -1,
      92,    -1,    -1,    95,    96,    97,    98,    -1,   100,   101,
     102,    -1,   104,    -1,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,    -1,   118,    -1,   120,    -1,
      -1,    -1,   124,   125,    -1,   127,   128,    -1,   130,    -1,
     132,   133,   134,   135,    -1,   137,   138,   139,    -1,   141,
     142,   143,   144,   145,   146,    -1,    -1,   149,   150,   151,
     152,   153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,
     162,    -1,   164,   165,   166,   167,   168,    -1,   170,    -1,
     172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
      -1,   193,    -1,   195,   196,   197,   198,   199,   200,   201,
     202,   203,    -1,   205,   206,    -1,   208,    -1,   210,   211,
     212,   213,   214,    -1,   216,    -1,   218,    -1,   220,   221,
      -1,    -1,   224,    -1,    -1,   227,   228,   229,   230,   231,
      -1,   233,   234,   235,   236,   237,    -1,   239,   240,   241,
     242,   243,   244,   245,   246,   247,    -1,   249,   250,   251,
     252,   253,   254,   255,   256,   257,    -1,   259,   260,    -1,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,   275,    -1,   277,   278,   279,   280,    -1,
     282,   283,    -1,   285,   286,   287,   288,   289,   290,   291,
     292,   293,   294,    -1,   296,   297,    -1,   299,   300,   301,
     302,    -1,   304,   305,    -1,    -1,   308,   309,   310,   311,
     312,   313,   314,   315,   316,   317,    -1,    -1,   320,   321,
     322,   323,    -1,    -1,   326,   327,   328,   329,   330,   331,
      -1,   333,   334,    -1,    -1,   337,   338,   339,   340,   341,
     342,    -1,    -1,    -1,   346,   347,   348,    -1,    -1,    -1,
     352,    -1,    -1,    -1,    -1,    -1,    -1,   359,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    12,    13,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,
      -1,    26,    27,    28,    -1,    30,    -1,    32,    33,    -1,
      35,    36,    37,    38,    39,    -1,    -1,    42,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    -1,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    -1,
      65,    66,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,
      75,    76,    77,    78,    79,    80,    81,    82,    -1,    84,
      -1,    86,    87,    88,    89,    90,    -1,    92,    -1,    -1,
      95,    96,    97,    98,    -1,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,    -1,    -1,    -1,   124,
     125,    -1,   127,   128,    -1,   130,    -1,   132,   133,   134,
     135,    -1,   137,   138,   139,    -1,   141,   142,   143,   144,
     145,   146,    -1,    -1,   149,   150,   151,   152,   153,   154,
     155,    -1,   157,    -1,   159,    -1,    -1,   162,    -1,   164,
     165,   166,   167,   168,    -1,   170,    -1,   172,    -1,    -1,
     175,   176,   177,    -1,    -1,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,    -1,   208,    -1,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,    -1,   220,   221,    -1,    -1,   224,
      -1,    -1,   227,   228,   229,   230,   231,    -1,   233,   234,
     235,   236,   237,    -1,   239,   240,   241,   242,   243,   244,
     245,   246,   247,    -1,   249,   250,   251,   252,   253,   254,
     255,   256,   257,    -1,   259,   260,    -1,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,    -1,   277,   278,   279,   280,    -1,   282,   283,    -1,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      -1,   296,   297,    -1,   299,   300,   301,   302,    -1,   304,
     305,    -1,    -1,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
      -1,    -1,   337,   338,   339,   340,   341,   342,    -1,    -1,
      -1,   346,   347,   348,    -1,    -1,    -1,   352,    -1,    -1,
      -1,    -1,    -1,    -1,   359,     3,     4,     5,     6,     7,
       8,     9,    10,    11,    12,    13,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
      38,    39,    -1,    -1,    42,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    -1,    -1,    54,    55,    56,    57,
      58,    -1,    60,    61,    62,    63,    -1,    65,    66,    67,
      -1,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,
      78,    79,    80,    81,    82,    -1,    84,    -1,    86,    87,
      88,    89,    90,    -1,    92,    -1,    -1,    95,    96,    97,
      98,    -1,   100,   101,   102,    -1,   104,    -1,   106,   107,
     108,   109,   110,   111,   112,    -1,   114,   115,   116,    -1,
     118,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,   127,
     128,    -1,   130,    -1,   132,   133,   134,   135,    -1,   137,
     138,   139,    -1,   141,   142,   143,   144,   145,   146,    -1,
      -1,   149,   150,   151,   152,   153,   154,   155,    -1,   157,
      -1,   159,    -1,    -1,   162,    -1,   164,   165,   166,   167,
     168,    -1,   170,    -1,   172,    -1,    -1,   175,   176,   177,
      -1,    -1,   180,   181,   182,   183,   184,   185,   186,   187,
     188,   189,   190,   191,    -1,   193,    -1,   195,   196,   197,
     198,   199,   200,   201,   202,   203,    -1,   205,   206,    -1,
     208,    -1,   210,   211,   212,   213,    -1,    -1,   216,    -1,
      -1,    -1,   220,   221,    -1,    -1,   224,    -1,    -1,   227,
     228,   229,   230,   231,    -1,   233,   234,   235,   236,   237,
      -1,   239,   240,   241,   242,   243,   244,   245,   246,   247,
      -1,   249,   250,   251,   252,   253,   254,   255,   256,   257,
      -1,   259,   260,    -1,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,   275,    -1,   277,
     278,   279,   280,    -1,   282,   283,    -1,   285,   286,   287,
     288,   289,   290,   291,   292,   293,   294,    -1,   296,   297,
      24,   299,   300,   301,   302,    29,   304,   305,    -1,    -1,
     308,   309,   310,   311,    -1,   313,   314,   315,   316,   317,
      -1,    -1,   320,   321,   322,   323,    -1,    -1,   326,   327,
     328,   329,   330,   331,    -1,   333,   334,    16,    -1,   337,
     338,   339,   340,   341,   342,    24,    -1,    -1,   346,    -1,
      29,    -1,    -1,    -1,   352,    -1,    16,    -1,    -1,    10,
      -1,   359,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
      21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    -1,
      61,    -1,   136,    -1,    -1,    -1,   140,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,
      -1,    -1,    83,    -1,    -1,    -1,   160,   161,    -1,    -1,
      -1,    -1,    -1,    -1,    95,    -1,    -1,    -1,    -1,   173,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   136,    -1,    -1,
      -1,   140,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   124,   125,    -1,   136,    -1,   129,    -1,
     140,   160,   161,   207,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   143,    -1,   173,    -1,   220,    -1,    -1,    -1,
     160,   161,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   173,    -1,   166,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   204,   177,    -1,   207,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   220,    -1,   222,   204,    -1,    -1,   207,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   281,    -1,    -1,
     220,    -1,   222,    -1,    -1,    -1,    -1,    -1,    -1,   220,
      -1,   222,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     241,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   281,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   262,    -1,    -1,    -1,   266,    -1,   268,    -1,    -1,
      -1,   281,    -1,    -1,    -1,    -1,    -1,   351,    -1,    -1,
      -1,    -1,    -1,    -1,   358,   359,   360,   361,   362,   363,
      -1,    -1,    -1,    -1,    -1,   369,    -1,    -1,   299,   300,
      -1,   302,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   310,
      -1,    -1,    -1,   314,   315,    -1,    -1,    -1,   319,    -1,
      -1,    -1,   351,   324,    -1,   354,   355,   356,    -1,   358,
     359,   360,   361,   362,   363,    -1,    -1,    -1,    -1,   368,
     369,   351,    -1,    -1,   354,   355,   356,    -1,   358,   359,
     360,   361,   362,   363,    -1,    -1,    -1,    -1,    -1,   369,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,
      -1,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,    -1,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,
      -1,   164,   165,   166,   167,   168,    -1,   170,    -1,   172,
      -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,    -1,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,    -1,    -1,    -1,   220,   221,    -1,
      -1,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,    -1,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,   347,   348,   349,   350,    -1,   352,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      83,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,
      -1,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,    -1,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,
      -1,   164,   165,   166,   167,   168,    -1,   170,    -1,   172,
      -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,    -1,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,    -1,    -1,    -1,   220,   221,    -1,
      -1,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,    -1,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,    -1,   348,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,
      27,    28,    -1,    30,    -1,    32,    33,    -1,    35,    36,
      37,    38,    39,    -1,    -1,    42,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    -1,    -1,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    -1,    65,    66,
      67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    84,    -1,    86,
      87,    88,    89,    90,    -1,    92,    -1,    -1,    95,    96,
      97,    98,    -1,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,   111,   112,    -1,   114,   115,   116,
      -1,   118,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,
     127,   128,    -1,   130,    -1,   132,   133,   134,   135,    -1,
     137,   138,   139,    -1,   141,   142,   143,   144,   145,   146,
      -1,    -1,   149,   150,   151,   152,   153,   154,   155,    -1,
     157,    -1,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,   168,    -1,   170,    -1,   172,    -1,    -1,   175,   176,
     177,    -1,    -1,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,   202,   203,    -1,   205,   206,
      -1,   208,    -1,   210,   211,   212,   213,    -1,    -1,   216,
      -1,    -1,    -1,   220,   221,    -1,    -1,   224,    -1,    -1,
     227,   228,   229,   230,   231,    -1,   233,   234,   235,   236,
     237,    -1,   239,   240,   241,   242,   243,   244,   245,   246,
     247,    -1,   249,   250,   251,   252,   253,   254,   255,   256,
     257,    -1,   259,   260,    -1,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,    -1,
     277,   278,   279,   280,    -1,   282,   283,    -1,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,    -1,   296,
     297,    -1,   299,   300,   301,   302,    -1,   304,   305,    -1,
      -1,   308,   309,   310,   311,    -1,   313,   314,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,    -1,    -1,
     337,   338,   339,   340,   341,   342,    -1,    -1,    -1,   346,
      -1,   348,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    -1,    24,    -1,    26,    27,    28,    -1,    30,
      -1,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    -1,    65,    66,    67,    -1,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
     111,   112,    -1,   114,   115,   116,    -1,   118,    -1,   120,
      -1,    -1,    -1,   124,   125,    -1,   127,   128,    -1,   130,
      -1,   132,   133,   134,   135,    -1,   137,   138,   139,    -1,
     141,   142,   143,   144,   145,   146,    -1,    -1,   149,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,    -1,
      -1,   162,    -1,   164,   165,   166,   167,   168,    -1,   170,
      -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,    -1,   208,    -1,   210,
     211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,   220,
     221,    -1,    -1,   224,    -1,    -1,   227,   228,   229,   230,
     231,    -1,   233,   234,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
      -1,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
      -1,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,    -1,   296,   297,    -1,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,   309,   310,
     311,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,    -1,   348,     3,     4,
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,    -1,    -1,
      -1,   346,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    -1,    24,    25,    26,    27,    28,    29,    30,
      31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    -1,    65,    66,    67,    68,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
     111,   112,    -1,   114,   115,   116,    -1,   118,    -1,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
      -1,   132,   133,   134,   135,   136,   137,   138,   139,    -1,
     141,   142,   143,   144,   145,   146,    -1,   148,   149,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,   160,
     161,   162,   163,   164,   165,   166,   167,   168,    -1,   170,
     171,   172,   173,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,   207,   208,    -1,   210,
     211,   212,   213,    -1,    -1,   216,   217,    -1,    -1,   220,
     221,    -1,    -1,   224,   225,   226,   227,   228,   229,   230,
     231,    -1,   233,   234,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
     281,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,    -1,   296,   297,    -1,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,   309,   310,
     311,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    21,    22,    -1,    24,    25,    26,
      27,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
      37,    38,    39,    -1,    -1,    42,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    -1,    -1,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    -1,    65,    66,
      67,    68,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    84,    -1,    86,
      87,    88,    89,    90,    -1,    92,    -1,    -1,    95,    96,
      97,    98,    -1,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,   111,   112,    -1,   114,   115,   116,
      -1,   118,    -1,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,    -1,   132,   133,   134,   135,   136,
     137,   138,   139,    -1,   141,   142,   143,   144,   145,   146,
      -1,   148,   149,   150,   151,   152,   153,   154,   155,    -1,
     157,    -1,   159,   160,   161,   162,   163,   164,   165,   166,
     167,   168,    -1,   170,   171,   172,   173,    -1,   175,   176,
     177,    -1,    -1,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
     197,   198,   199,   200,   201,   202,   203,    -1,   205,   206,
     207,   208,    -1,   210,   211,   212,   213,    -1,    -1,   216,
     217,    -1,    -1,   220,   221,    -1,    -1,   224,   225,   226,
     227,   228,   229,   230,   231,    -1,   233,   234,   235,   236,
     237,    -1,   239,   240,   241,   242,   243,   244,   245,   246,
     247,    -1,   249,   250,   251,   252,   253,   254,   255,   256,
     257,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,    -1,
     277,   278,   279,   280,   281,   282,   283,    -1,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,    -1,   296,
     297,    -1,   299,   300,   301,   302,    -1,   304,   305,    -1,
      -1,   308,   309,   310,   311,    -1,   313,   314,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,    -1,    -1,
     337,   338,   339,   340,   341,   342,    -1,    -1,    -1,   346,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    25,    26,    27,    28,    29,    30,    31,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    68,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,   136,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,   148,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,   160,   161,   162,
     163,   164,   165,   166,   167,   168,    -1,   170,   171,   172,
     173,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,   207,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,   217,    -1,    -1,   220,   221,    -1,
      -1,   224,   225,   226,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,   281,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,    28,
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
      39,    -1,    -1,    42,    43,    44,    45,    46,    47,    48,
      49,    50,    51,    -1,    -1,    54,    55,    56,    57,    58,
      59,    60,    61,    62,    63,    -1,    65,    66,    67,    -1,
      69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
      79,    80,    81,    82,    -1,    84,    -1,    86,    87,    88,
      89,    90,    -1,    92,    -1,    -1,    95,    96,    97,    98,
      -1,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,   111,   112,    -1,   114,   115,   116,    -1,   118,
     119,   120,    -1,    -1,    -1,   124,   125,    -1,   127,   128,
      -1,   130,    -1,   132,   133,   134,   135,    -1,   137,   138,
     139,    -1,   141,   142,   143,   144,   145,   146,    -1,    -1,
     149,   150,   151,   152,   153,   154,   155,    -1,   157,    -1,
     159,    -1,    -1,   162,    -1,   164,   165,   166,   167,   168,
      -1,   170,    -1,   172,   173,    -1,   175,   176,   177,    -1,
      -1,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,   202,   203,    -1,   205,   206,    -1,   208,
      -1,   210,   211,   212,   213,    -1,    -1,   216,    -1,    -1,
      -1,   220,   221,    -1,    -1,   224,    -1,    -1,   227,   228,
     229,   230,   231,    -1,   233,   234,   235,   236,   237,   238,
     239,   240,   241,   242,   243,   244,   245,   246,   247,    -1,
     249,   250,   251,   252,   253,   254,   255,   256,   257,    -1,
     259,   260,    -1,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,    -1,   277,   278,
     279,   280,    -1,   282,   283,    -1,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,    -1,   296,   297,    -1,
     299,   300,   301,   302,    -1,   304,   305,    -1,    -1,   308,
     309,   310,   311,    -1,   313,   314,   315,   316,   317,    -1,
     319,   320,   321,   322,   323,    -1,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,    -1,    -1,   337,   338,
     339,   340,   341,   342,    -1,    -1,    -1,   346,     3,     4,
       5,     6,     7,     8,     9,    10,    11,    12,    13,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,
      -1,    26,    27,    28,    -1,    30,    -1,    32,    33,    -1,
      35,    36,    37,    38,    39,    -1,    -1,    42,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    -1,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    64,
      65,    66,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,
      75,    76,    77,    78,    79,    80,    81,    82,    -1,    84,
      -1,    86,    87,    88,    89,    90,    -1,    92,    -1,    -1,
      95,    96,    97,    98,    -1,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,   111,   112,    -1,   114,
     115,   116,    -1,   118,    -1,   120,    -1,    -1,    -1,   124,
     125,   126,   127,   128,    -1,   130,    -1,   132,   133,   134,
     135,    -1,   137,   138,   139,    -1,   141,   142,   143,   144,
     145,   146,    -1,    -1,   149,   150,   151,   152,   153,   154,
     155,    -1,   157,    -1,   159,    -1,    -1,   162,    -1,   164,
     165,   166,   167,   168,    -1,   170,    -1,   172,    -1,    -1,
     175,   176,   177,    -1,    -1,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,    -1,   208,    -1,   210,   211,   212,   213,    -1,
      -1,   216,    -1,    -1,    -1,   220,   221,    -1,    -1,   224,
      -1,    -1,   227,   228,   229,   230,   231,    -1,   233,   234,
     235,   236,   237,    -1,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,    -1,   259,   260,    -1,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,    -1,   277,   278,   279,   280,    -1,   282,   283,    -1,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      -1,   296,   297,    -1,   299,   300,   301,   302,    -1,   304,
     305,    -1,    -1,   308,   309,   310,   311,    -1,   313,   314,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
      -1,    -1,   337,   338,   339,   340,   341,   342,    -1,    -1,
      -1,   346,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    -1,    24,    25,    26,    27,    28,    29,    30,
      31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      -1,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    -1,    63,    -1,    65,    66,    67,    68,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,    -1,   110,
     111,    -1,    -1,   114,   115,   116,    -1,   118,    -1,   120,
     121,    -1,   123,   124,   125,    -1,   127,    -1,    -1,   130,
      -1,   132,   133,   134,   135,   136,   137,   138,   139,   140,
     141,   142,   143,   144,   145,   146,    -1,   148,   149,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,   160,
     161,   162,   163,   164,   165,   166,   167,   168,    -1,    -1,
     171,   172,   173,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,   192,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,   206,   207,   208,    -1,    -1,
     211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,   220,
     221,    -1,    -1,   224,   225,   226,    -1,   228,   229,   230,
     231,    -1,    -1,    -1,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
     281,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,    -1,   294,    -1,   296,   297,    -1,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,    -1,   310,
      -1,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,   326,   327,   328,    -1,   330,
     331,   332,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,     3,     4,     5,     6,
       7,     8,     9,    10,    11,    12,    13,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,
      27,    28,    -1,    30,    -1,    32,    33,    -1,    35,    36,
      37,    38,    39,    -1,    -1,    42,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    -1,    -1,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    64,    65,    66,
      67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    84,    -1,    86,
      87,    88,    89,    90,    -1,    92,    -1,    -1,    95,    96,
      97,    98,    -1,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,   111,   112,    -1,   114,   115,   116,
      -1,   118,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,
     127,   128,    -1,   130,    -1,   132,   133,   134,   135,    -1,
     137,   138,   139,    -1,   141,   142,   143,   144,   145,   146,
      -1,    -1,   149,   150,   151,   152,   153,   154,   155,    -1,
     157,    -1,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,   168,    -1,   170,    -1,   172,    -1,    -1,   175,   176,
     177,    -1,    -1,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,   202,   203,    -1,   205,   206,
      -1,   208,    -1,   210,   211,   212,   213,    -1,    -1,   216,
      -1,    -1,    -1,   220,   221,    -1,    -1,   224,    -1,    -1,
     227,   228,   229,   230,   231,    -1,   233,   234,   235,   236,
     237,    -1,   239,   240,   241,   242,   243,   244,   245,   246,
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
     257,    -1,   259,   260,    -1,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,    -1,
     277,   278,   279,   280,    -1,   282,   283,    -1,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,    -1,   296,
     297,    -1,   299,   300,   301,   302,    -1,   304,   305,    -1,
      -1,   308,   309,   310,   311,    -1,   313,   314,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,    -1,    -1,
     337,   338,   339,   340,   341,   342,    -1,    -1,    -1,   346,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    14,    15,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,
      -1,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,    -1,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,
      -1,   164,   165,   166,   167,   168,    -1,   170,    -1,   172,
      -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,    -1,
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,    -1,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,   217,    -1,    -1,   220,   221,    -1,
      -1,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,    -1,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,    28,
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
      39,    -1,    -1,    42,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    -1,    -1,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    -1,    65,    66,    67,    -1,
      69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
      79,    80,    81,    82,    -1,    84,    -1,    86,    87,    88,
      89,    90,    -1,    92,    -1,    -1,    95,    96,    97,    98,
      -1,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,   111,   112,    -1,   114,   115,   116,    -1,   118,
      -1,   120,    -1,    -1,    -1,   124,   125,    -1,   127,   128,
      -1,   130,    -1,   132,   133,   134,   135,    -1,   137,   138,
     139,    -1,   141,   142,   143,   144,   145,   146,    -1,    -1,
     149,   150,   151,   152,   153,   154,   155,    -1,   157,    -1,
     159,    -1,    -1,   162,    -1,   164,   165,   166,   167,   168,
      -1,   170,    -1,   172,    -1,    -1,   175,   176,   177,    -1,
      -1,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
     199,   200,   201,   202,   203,    -1,   205,   206,    -1,   208,
      -1,   210,   211,   212,   213,    -1,    -1,   216,   217,    -1,
     219,   220,   221,    -1,    -1,   224,    -1,    -1,   227,   228,
     229,   230,   231,    -1,   233,   234,   235,   236,   237,    -1,
     239,   240,   241,   242,   243,   244,   245,   246,   247,    -1,
     249,   250,   251,   252,   253,   254,   255,   256,   257,    -1,
     259,   260,    -1,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,    -1,   277,   278,
     279,   280,    -1,   282,   283,    -1,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,    -1,   296,   297,    -1,
     299,   300,   301,   302,    -1,   304,   305,    -1,    -1,   308,
     309,   310,   311,    -1,   313,   314,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,    -1,    -1,   337,   338,
     339,   340,   341,   342,    -1,    -1,    -1,   346,     3,     4,
       5,     6,     7,     8,     9,    10,    11,    12,    13,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,
      -1,    26,    27,    28,    -1,    30,    -1,    32,    33,    -1,
      35,    36,    37,    38,    39,    -1,    -1,    42,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    -1,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    -1,
      65,    66,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,
      75,    76,    77,    78,    79,    80,    81,    82,    -1,    84,
      -1,    86,    87,    88,    89,    90,    -1,    92,    -1,    -1,
      95,    96,    97,    98,    -1,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,   111,   112,    -1,   114,
     115,   116,    -1,   118,    -1,   120,    -1,    -1,    -1,   124,
     125,    -1,   127,   128,    -1,   130,    -1,   132,   133,   134,
     135,    -1,   137,   138,   139,    -1,   141,   142,   143,   144,
     145,   146,    -1,    -1,   149,   150,   151,   152,   153,   154,
     155,    -1,   157,    -1,   159,    -1,    -1,   162,    -1,   164,
     165,   166,   167,   168,    -1,   170,    -1,   172,    -1,    -1,
     175,   176,   177,    -1,    -1,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,    -1,   208,    -1,   210,   211,   212,   213,    -1,
      -1,   216,   217,    -1,    -1,   220,   221,    -1,    -1,   224,
      -1,    -1,   227,   228,   229,   230,   231,    -1,   233,   234,
     235,   236,   237,    -1,   239,   240,   241,   242,   243,   244,
     245,   246,   247,    -1,   249,   250,   251,   252,   253,   254,
     255,   256,   257,    -1,   259,   260,    -1,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,    -1,   277,   278,   279,   280,    -1,   282,   283,    -1,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      -1,   296,   297,    -1,   299,   300,   301,   302,    -1,   304,
     305,    -1,    -1,   308,   309,   310,   311,    -1,   313,   314,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
      -1,    -1,   337,   338,   339,   340,   341,   342,    -1,    -1,
      -1,   346,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    -1,    24,    -1,    26,    27,    28,    -1,    30,
      -1,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    -1,    65,    66,    67,    -1,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
     111,   112,    -1,   114,   115,   116,    -1,   118,    -1,   120,
      -1,    -1,    -1,   124,   125,    -1,   127,   128,    -1,   130,
      -1,   132,   133,   134,   135,    -1,   137,   138,   139,    -1,
     141,   142,   143,   144,   145,   146,    -1,    -1,   149,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,    -1,
      -1,   162,    -1,   164,   165,   166,   167,   168,    -1,   170,
      -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,    -1,   208,    -1,   210,
     211,   212,   213,    -1,    -1,   216,   217,    -1,    -1,   220,
     221,    -1,    -1,   224,    -1,    -1,   227,   228,   229,   230,
     231,    -1,   233,   234,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
      -1,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
      -1,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,    -1,   296,   297,   298,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,   309,   310,
     311,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,
      27,    28,    -1,    30,    -1,    32,    33,    -1,    35,    36,
      37,    38,    39,    -1,    -1,    42,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    -1,    -1,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    64,    65,    66,
      67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    84,    -1,    86,
      87,    88,    89,    90,    -1,    92,    -1,    -1,    95,    96,
      97,    98,    -1,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,   111,   112,    -1,   114,   115,   116,
      -1,   118,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,
     127,   128,    -1,   130,    -1,   132,   133,   134,   135,    -1,
     137,   138,   139,    -1,   141,   142,   143,   144,   145,   146,
      -1,    -1,   149,   150,   151,   152,   153,   154,   155,    -1,
     157,    -1,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,   168,    -1,   170,    -1,   172,    -1,    -1,   175,   176,
     177,    -1,    -1,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,   202,   203,    -1,   205,   206,
      -1,   208,    -1,   210,   211,   212,   213,    -1,    -1,   216,
      -1,    -1,    -1,   220,   221,    -1,    -1,   224,    -1,    -1,
     227,   228,   229,   230,   231,    -1,   233,   234,   235,   236,
     237,    -1,   239,   240,   241,   242,   243,   244,   245,   246,
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
     257,    -1,   259,   260,    -1,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,    -1,
     277,   278,   279,   280,    -1,   282,   283,    -1,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,    -1,   296,
     297,    -1,   299,   300,   301,   302,    -1,   304,   305,    -1,
      -1,   308,   309,   310,   311,    -1,   313,   314,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,    -1,    -1,
     337,   338,   339,   340,   341,   342,    -1,    -1,    -1,   346,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,
      -1,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,    -1,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,
      -1,   164,   165,   166,   167,   168,    -1,   170,    -1,   172,
      -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,    -1,
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,    -1,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,   217,    -1,    -1,   220,   221,    -1,
      -1,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,    -1,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,   298,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,    28,
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
      39,    -1,    -1,    42,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    -1,    -1,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    -1,    65,    66,    67,    -1,
      69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
      79,    80,    81,    82,    -1,    84,    -1,    86,    87,    88,
      89,    90,    -1,    92,    -1,    -1,    95,    96,    97,    98,
      -1,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,   111,   112,    -1,   114,   115,   116,    -1,   118,
      -1,   120,    -1,    -1,    -1,   124,   125,    -1,   127,   128,
      -1,   130,    -1,   132,   133,   134,   135,    -1,   137,   138,
     139,    -1,   141,   142,   143,   144,   145,   146,    -1,    -1,
     149,   150,   151,   152,   153,   154,   155,    -1,   157,    -1,
     159,    -1,    -1,   162,    -1,   164,   165,   166,   167,   168,
      -1,   170,    -1,   172,    -1,    -1,   175,   176,   177,    -1,
      -1,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
     199,   200,   201,   202,   203,    -1,   205,   206,    -1,   208,
      -1,   210,   211,   212,   213,    -1,    -1,   216,   217,    -1,
      -1,   220,   221,    -1,    -1,   224,    -1,    -1,   227,   228,
     229,   230,   231,    -1,   233,   234,   235,   236,   237,    -1,
     239,   240,   241,   242,   243,   244,   245,   246,   247,    -1,
     249,   250,   251,   252,   253,   254,   255,   256,   257,    -1,
     259,   260,    -1,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,    -1,   277,   278,
     279,   280,    -1,   282,   283,    -1,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,    -1,   296,   297,    -1,
     299,   300,   301,   302,    -1,   304,   305,    -1,    -1,   308,
     309,   310,   311,    -1,   313,   314,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,    -1,    -1,   337,   338,
     339,   340,   341,   342,    -1,    -1,    -1,   346,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    12,    13,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
      35,    36,    37,    38,    39,    -1,    -1,    42,    43,    44,
      45,    -1,    47,    48,    49,    50,    -1,    -1,    -1,    54,
      55,    56,    57,    58,    -1,    60,    61,    -1,    63,    -1,
      65,    66,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,
      75,    76,    77,    78,    79,    80,    81,    82,    -1,    84,
      -1,    86,    87,    88,    89,    90,    -1,    92,    -1,    -1,
      95,    96,    97,    98,    -1,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,    -1,   110,   111,    -1,    -1,   114,
     115,   116,    -1,   118,    -1,   120,   121,    -1,   123,   124,
     125,    -1,   127,    -1,    -1,   130,    -1,   132,   133,   134,
     135,   136,   137,   138,   139,    -1,   141,   142,   143,   144,
     145,   146,    -1,   148,    -1,   150,   151,   152,   153,   154,
     155,    -1,   157,    -1,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,    -1,    -1,   171,   172,   173,    -1,
     175,   176,   177,    -1,    -1,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,   206,   207,   208,    -1,    -1,   211,   212,   213,    -1,
      -1,   216,    -1,    -1,    -1,   220,   221,    -1,    -1,    -1,
     225,   226,    -1,   228,   229,   230,   231,    -1,    -1,    -1,
     235,   236,   237,    -1,   239,   240,   241,   242,   243,   244,
     245,   246,   247,    -1,   249,   250,   251,   252,   253,   254,
     255,   256,   257,    -1,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,    -1,   277,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,   287,   288,   289,   290,   291,   292,    -1,   294,
      -1,   296,   297,    -1,   299,   300,   301,   302,    -1,   304,
     305,    -1,    -1,   308,    -1,   310,    -1,    -1,   313,   314,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,   326,   327,   328,    -1,   330,   331,   332,   333,   334,
      -1,    -1,   337,   338,   339,   340,   341,   342,    -1,    -1,
      -1,   346,     3,     4,     5,     6,     7,     8,     9,    10,
      11,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    -1,    24,    -1,    26,    27,    28,    -1,    30,
      -1,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    -1,    65,    66,    67,    -1,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
     111,   112,    -1,   114,   115,   116,    -1,   118,    -1,   120,
      -1,    -1,    -1,   124,   125,    -1,   127,   128,    -1,   130,
      -1,   132,   133,   134,   135,    -1,   137,   138,   139,    -1,
     141,   142,   143,   144,   145,   146,    -1,    -1,   149,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,    -1,
      -1,   162,    -1,   164,   165,   166,   167,   168,    -1,   170,
      -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,    -1,   208,    -1,   210,
     211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,   220,
     221,    -1,    -1,   224,    -1,    -1,   227,   228,   229,   230,
     231,    -1,   233,   234,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
      -1,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
      -1,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,    -1,   296,   297,    -1,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,   309,   310,
     311,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,     3,     4,     5,     6,
       7,     8,     9,    10,    11,    12,    13,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,
      27,    28,    -1,    30,    -1,    32,    33,    -1,    35,    36,
      37,    38,    39,    -1,    -1,    42,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    -1,    -1,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    -1,    65,    66,
      67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    84,    -1,    86,
      87,    88,    89,    90,    -1,    92,    -1,    -1,    95,    96,
      97,    98,    -1,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,   111,   112,    -1,   114,   115,   116,
      -1,   118,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,
     127,   128,    -1,   130,    -1,   132,   133,   134,   135,    -1,
     137,   138,   139,    -1,   141,   142,   143,   144,   145,   146,
      -1,    -1,   149,   150,   151,   152,   153,   154,   155,    -1,
     157,    -1,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,   168,    -1,   170,    -1,   172,    -1,    -1,   175,   176,
     177,    -1,    -1,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,   202,   203,    -1,   205,   206,
      -1,   208,    -1,   210,   211,   212,   213,    -1,    -1,   216,
      -1,    -1,    -1,   220,   221,    -1,    -1,   224,    -1,    -1,
     227,   228,   229,   230,   231,    -1,   233,   234,   235,   236,
     237,    -1,   239,   240,   241,   242,   243,   244,   245,   246,
     247,    -1,   249,   250,   251,   252,   253,   254,   255,   256,
     257,    -1,   259,   260,    -1,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,    -1,
     277,   278,   279,   280,    -1,   282,   283,    -1,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,    -1,   296,
     297,    -1,   299,   300,   301,   302,    -1,   304,   305,    -1,
      -1,   308,   309,   310,   311,    -1,   313,   314,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,    -1,    -1,
     337,   338,   339,   340,   341,   342,    -1,    -1,    -1,   346,
       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,
      -1,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,    -1,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,
      -1,   164,   165,   166,   167,   168,    -1,   170,    -1,   172,
      -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,    -1,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,    -1,    -1,    -1,   220,   221,    -1,
      -1,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,    -1,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,     3,     4,     5,     6,     7,     8,
       9,    10,    11,    12,    13,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,    28,
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
      39,    -1,    -1,    42,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    -1,    -1,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    -1,    65,    66,    67,    -1,
      69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
      79,    80,    81,    82,    -1,    84,    -1,    86,    87,    88,
      89,    90,    -1,    92,    -1,    -1,    95,    96,    97,    98,
      -1,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,   111,   112,    -1,   114,   115,   116,    -1,   118,
      -1,   120,    -1,    -1,    -1,   124,   125,    -1,   127,   128,
      -1,   130,    -1,   132,   133,   134,   135,    -1,   137,   138,
     139,    -1,   141,   142,   143,   144,   145,   146,    -1,    -1,
     149,   150,   151,   152,   153,   154,   155,    -1,   157,    -1,
     159,    -1,    -1,   162,    -1,   164,   165,   166,   167,   168,
      -1,   170,    -1,   172,    -1,    -1,   175,   176,   177,    -1,
      -1,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,   202,   203,    -1,   205,   206,    -1,   208,
      -1,   210,   211,   212,   213,    -1,    -1,   216,    -1,    -1,
      -1,   220,   221,    -1,    -1,   224,    -1,    -1,   227,   228,
     229,   230,   231,    -1,   233,   234,   235,   236,   237,    -1,
     239,   240,   241,   242,   243,   244,   245,   246,   247,    -1,
     249,   250,   251,   252,   253,   254,   255,   256,   257,    -1,
     259,   260,    -1,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,    -1,   277,   278,
     279,   280,    -1,   282,   283,    -1,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,    -1,   296,   297,    -1,
     299,   300,   301,   302,    -1,   304,   305,    -1,    -1,   308,
     309,   310,   311,    -1,   313,   314,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,    -1,    -1,   337,   338,
     339,   340,   341,   342,    -1,    -1,    -1,   346,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    12,    13,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,
      25,    26,    27,    28,    -1,    30,    -1,    32,    33,    -1,
      35,    36,    37,    38,    39,    -1,    -1,    42,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    -1,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    -1,
      65,    66,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,
      75,    76,    77,    78,    79,    80,    81,    82,    -1,    84,
      -1,    86,    87,    88,    89,    90,    -1,    92,    -1,    -1,
      95,    96,    97,    98,    -1,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,   111,   112,    -1,   114,
     115,   116,    -1,   118,    -1,   120,    -1,    -1,    -1,   124,
     125,    -1,   127,   128,    -1,   130,    -1,   132,   133,   134,
     135,    -1,   137,   138,   139,    -1,   141,   142,   143,   144,
     145,   146,    -1,    -1,   149,   150,   151,   152,   153,   154,
     155,    -1,   157,    -1,   159,    -1,    -1,   162,    -1,   164,
     165,   166,   167,   168,    -1,   170,    -1,   172,    -1,    -1,
     175,   176,   177,    -1,    -1,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,    -1,   208,    -1,   210,   211,   212,   213,    -1,
      -1,   216,    -1,    -1,    -1,   220,   221,    -1,    -1,   224,
      -1,    -1,   227,   228,   229,   230,   231,    -1,   233,   234,
     235,   236,   237,    -1,   239,   240,   241,   242,   243,   244,
     245,   246,   247,    -1,   249,   250,   251,   252,   253,   254,
     255,   256,   257,    -1,   259,   260,    -1,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,    -1,   277,   278,   279,   280,    -1,   282,   283,    -1,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      -1,   296,   297,    -1,   299,   300,   301,   302,    -1,   304,
     305,    -1,    -1,   308,   309,   310,   311,    -1,   313,   314,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
      -1,    -1,   337,   338,   339,   340,   341,   342,    -1,    -1,
      -1,   346,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    19,    -1,
      21,    22,    -1,    24,    -1,    26,    27,    28,    -1,    30,
      -1,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    -1,    65,    66,    67,    -1,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
     111,   112,    -1,   114,   115,   116,    -1,   118,    -1,   120,
      -1,    -1,    -1,   124,   125,    -1,   127,   128,    -1,   130,
      -1,   132,   133,   134,   135,    -1,   137,   138,   139,    -1,
     141,   142,   143,   144,   145,   146,    -1,    -1,   149,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,    -1,
      -1,   162,    -1,   164,   165,   166,   167,   168,    -1,   170,
      -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,    -1,   208,    -1,   210,
     211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,   220,
     221,    -1,    -1,   224,    -1,    -1,   227,   228,   229,   230,
     231,    -1,   233,   234,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
      -1,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
      -1,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,    -1,   296,   297,    -1,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,   309,   310,
     311,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
      -1,    -1,    19,    -1,    21,    22,    -1,    24,    -1,    26,
      27,    28,    -1,    30,    -1,    32,    33,    -1,    35,    36,
      37,    38,    39,    -1,    -1,    42,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    -1,    -1,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    -1,    65,    66,
      67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    84,    -1,    86,
      87,    88,    89,    90,    -1,    92,    -1,    -1,    95,    96,
      97,    98,    -1,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,   111,   112,    -1,   114,   115,   116,
      -1,   118,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,
     127,   128,    -1,   130,    -1,   132,   133,   134,   135,    -1,
     137,   138,   139,    -1,   141,   142,   143,   144,   145,   146,
      -1,    -1,   149,   150,   151,   152,   153,   154,   155,    -1,
     157,    -1,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,   168,    -1,   170,    -1,   172,    -1,    -1,   175,   176,
     177,    -1,    -1,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,   202,   203,    -1,   205,   206,
      -1,   208,    -1,   210,   211,   212,   213,    -1,    -1,   216,
      -1,    -1,    -1,   220,   221,    -1,    -1,   224,    -1,    -1,
     227,   228,   229,   230,   231,    -1,   233,   234,   235,   236,
     237,    -1,   239,   240,   241,   242,   243,   244,   245,   246,
     247,    -1,   249,   250,   251,   252,   253,   254,   255,   256,
     257,    -1,   259,   260,    -1,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,    -1,
     277,   278,   279,   280,    -1,   282,   283,    -1,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,    -1,   296,
     297,    -1,   299,   300,   301,   302,    -1,   304,   305,    -1,
      -1,   308,   309,   310,   311,    -1,   313,   314,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,    -1,    -1,
     337,   338,   339,   340,   341,   342,    -1,    -1,    -1,   346,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,
      -1,   124,   125,    -1,   127,   128,   129,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,    -1,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,
      -1,   164,   165,   166,   167,   168,    -1,   170,    -1,   172,
      -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,    -1,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,    -1,    -1,    -1,   220,   221,    -1,
      -1,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,    -1,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,    28,
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
      39,    -1,    -1,    42,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    -1,    -1,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    -1,    65,    66,    67,    -1,
      69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
      79,    80,    81,    82,    83,    84,    -1,    86,    87,    88,
      89,    90,    -1,    92,    -1,    -1,    95,    96,    97,    98,
      -1,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,   111,   112,    -1,   114,   115,   116,    -1,   118,
      -1,   120,    -1,    -1,    -1,   124,   125,    -1,   127,   128,
      -1,   130,    -1,   132,   133,   134,   135,    -1,   137,   138,
     139,    -1,   141,   142,   143,   144,   145,   146,    -1,    -1,
     149,   150,   151,   152,   153,   154,   155,    -1,   157,    -1,
     159,    -1,    -1,   162,    -1,   164,   165,   166,   167,   168,
      -1,   170,    -1,   172,    -1,    -1,   175,   176,   177,    -1,
      -1,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,   202,   203,    -1,   205,   206,    -1,   208,
      -1,   210,   211,   212,   213,    -1,    -1,   216,    -1,    -1,
      -1,   220,   221,    -1,    -1,   224,    -1,    -1,   227,   228,
     229,   230,   231,    -1,   233,   234,   235,   236,   237,    -1,
     239,   240,   241,   242,   243,   244,   245,   246,   247,    -1,
     249,   250,   251,   252,   253,   254,   255,   256,   257,    -1,
     259,   260,    -1,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,    -1,   277,   278,
     279,   280,    -1,   282,   283,    -1,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,    -1,   296,   297,    -1,
     299,   300,   301,   302,    -1,   304,   305,    -1,    -1,   308,
     309,   310,   311,    -1,   313,   314,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,    -1,    -1,   337,   338,
     339,   340,   341,   342,    -1,    -1,    -1,   346,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    12,    13,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,
      -1,    26,    27,    28,    -1,    30,    -1,    32,    33,    -1,
      35,    36,    37,    38,    39,    -1,    -1,    42,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    -1,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    -1,
      65,    66,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      -1,    86,    87,    88,    89,    90,    -1,    92,    -1,    -1,
      95,    96,    97,    98,    -1,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,   111,   112,    -1,   114,
     115,   116,    -1,   118,    -1,   120,    -1,    -1,    -1,   124,
     125,    -1,   127,   128,    -1,   130,    -1,   132,   133,   134,
     135,    -1,   137,   138,   139,    -1,   141,   142,   143,   144,
     145,   146,    -1,    -1,   149,   150,   151,   152,   153,   154,
     155,    -1,   157,    -1,   159,    -1,    -1,   162,    -1,   164,
     165,   166,   167,   168,    -1,   170,    -1,   172,    -1,    -1,
     175,   176,   177,    -1,    -1,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,    -1,   208,    -1,   210,   211,   212,   213,    -1,
      -1,   216,    -1,    -1,    -1,   220,   221,    -1,    -1,   224,
      -1,    -1,   227,   228,   229,   230,   231,    -1,   233,   234,
     235,   236,   237,    -1,   239,   240,   241,   242,   243,   244,
     245,   246,   247,    -1,   249,   250,   251,   252,   253,   254,
     255,   256,   257,    -1,   259,   260,    -1,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,    -1,   277,   278,   279,   280,    -1,   282,   283,    -1,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      -1,   296,   297,    -1,   299,   300,   301,   302,    -1,   304,
     305,    -1,    -1,   308,   309,   310,   311,    -1,   313,   314,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
      -1,    -1,   337,   338,   339,   340,   341,   342,    -1,    -1,
      -1,   346,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    -1,    24,    -1,    26,    27,    28,    -1,    30,
      -1,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    -1,    65,    66,    67,    -1,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    83,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
     111,   112,    -1,   114,   115,   116,    -1,   118,    -1,   120,
      -1,    -1,    -1,   124,   125,    -1,   127,   128,    -1,   130,
      -1,   132,   133,   134,   135,    -1,   137,   138,   139,    -1,
     141,   142,   143,   144,   145,   146,    -1,    -1,   149,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,    -1,
      -1,   162,    -1,   164,   165,   166,   167,   168,    -1,   170,
      -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,    -1,   208,    -1,   210,
     211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,   220,
     221,    -1,    -1,   224,    -1,    -1,   227,   228,   229,   230,
     231,    -1,   233,   234,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
      -1,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
      -1,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,    -1,   296,   297,    -1,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,   309,   310,
     311,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,
      27,    28,    -1,    30,    -1,    32,    33,    -1,    35,    36,
      37,    38,    39,    -1,    -1,    42,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    -1,    -1,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    -1,    65,    66,
      67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    84,    -1,    86,
      87,    88,    89,    90,    -1,    92,    -1,    -1,    95,    96,
      97,    98,    -1,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,   111,   112,    -1,   114,   115,   116,
      -1,   118,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,
     127,   128,    -1,   130,    -1,   132,   133,   134,   135,    -1,
     137,   138,   139,    -1,   141,   142,   143,   144,   145,   146,
      -1,    -1,   149,   150,   151,   152,   153,   154,   155,    -1,
     157,    -1,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,   168,    -1,   170,    -1,   172,    -1,    -1,   175,   176,
     177,    -1,    -1,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,   202,   203,    -1,   205,   206,
      -1,   208,    -1,   210,   211,   212,   213,    -1,    -1,   216,
      -1,    -1,    -1,   220,   221,    -1,    -1,   224,    -1,    -1,
     227,   228,   229,   230,   231,    -1,   233,   234,   235,   236,
     237,    -1,   239,   240,   241,   242,   243,   244,   245,   246,
     247,    -1,   249,   250,   251,   252,   253,   254,   255,   256,
     257,    -1,   259,   260,    -1,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,    -1,
     277,   278,   279,   280,    -1,   282,   283,    -1,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,    -1,   296,
     297,    -1,   299,   300,   301,   302,    -1,   304,   305,    -1,
      -1,   308,   309,   310,   311,    -1,   313,   314,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,   325,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,    -1,    -1,
     337,   338,   339,   340,   341,   342,    -1,    -1,    -1,   346,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,
      -1,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,    -1,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,
      -1,   164,   165,   166,   167,   168,    -1,   170,    -1,   172,
      -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,    -1,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,    -1,    -1,    -1,   220,   221,    -1,
      -1,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,    -1,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,    28,
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
      39,    -1,    -1,    42,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    -1,    -1,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    -1,    65,    66,    67,    -1,
      69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
      79,    80,    81,    82,    -1,    84,    -1,    86,    87,    88,
      89,    90,    -1,    92,    -1,    -1,    95,    96,    97,    98,
      -1,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,   111,   112,    -1,   114,   115,   116,    -1,   118,
      -1,   120,    -1,    -1,    -1,   124,   125,    -1,   127,   128,
      -1,   130,    -1,   132,   133,   134,   135,    -1,   137,   138,
     139,    -1,   141,   142,   143,   144,   145,   146,    -1,    -1,
     149,   150,   151,   152,   153,   154,   155,    -1,   157,    -1,
     159,    -1,    -1,   162,    -1,   164,   165,   166,   167,   168,
      -1,   170,    -1,   172,    -1,    -1,   175,   176,   177,    -1,
      -1,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,   202,   203,    -1,   205,   206,    -1,   208,
      -1,   210,   211,   212,   213,    -1,    -1,   216,    -1,    -1,
      -1,   220,   221,    -1,    -1,   224,    -1,    -1,   227,   228,
     229,   230,   231,    -1,   233,   234,   235,   236,   237,    -1,
     239,   240,   241,   242,   243,   244,   245,   246,   247,    -1,
     249,   250,   251,   252,   253,   254,   255,   256,   257,    -1,
     259,   260,    -1,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,    -1,   277,   278,
     279,   280,    -1,   282,   283,    -1,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,    -1,   296,   297,    -1,
     299,   300,   301,   302,    -1,   304,   305,    -1,    -1,   308,
     309,   310,   311,    -1,   313,   314,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,    -1,    -1,   337,   338,
     339,   340,   341,   342,    -1,    -1,    -1,   346,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    12,    13,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,
      -1,    26,    27,    28,    -1,    30,    -1,    32,    33,    -1,
      35,    36,    37,    38,    39,    -1,    -1,    42,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    -1,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    -1,
      65,    66,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,
      75,    76,    77,    78,    79,    80,    81,    82,    -1,    84,
      -1,    86,    87,    88,    89,    90,    -1,    92,    -1,    -1,
      95,    96,    97,    98,    -1,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,   111,   112,    -1,   114,
     115,   116,    -1,   118,    -1,   120,    -1,    -1,    -1,   124,
     125,    -1,   127,   128,    -1,   130,    -1,   132,   133,   134,
     135,    -1,   137,   138,   139,    -1,   141,   142,   143,   144,
     145,   146,    -1,    -1,   149,   150,   151,   152,   153,   154,
     155,    -1,   157,    -1,   159,    -1,    -1,   162,    -1,   164,
     165,   166,   167,   168,    -1,   170,    -1,   172,    -1,    -1,
     175,   176,   177,    -1,    -1,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,    -1,   208,    -1,   210,   211,   212,   213,    -1,
      -1,   216,    -1,    -1,    -1,   220,   221,    -1,    -1,   224,
      -1,    -1,   227,   228,   229,   230,   231,    -1,   233,   234,
     235,   236,   237,    -1,   239,   240,   241,   242,   243,   244,
     245,   246,   247,    -1,   249,   250,   251,   252,   253,   254,
     255,   256,   257,    -1,   259,   260,    -1,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,    -1,   277,   278,   279,   280,    -1,   282,   283,    -1,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      -1,   296,   297,    -1,   299,   300,   301,   302,    -1,   304,
     305,    -1,    -1,   308,   309,   310,   311,    -1,   313,   314,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
      -1,    -1,   337,   338,   339,   340,   341,   342,    -1,    -1,
      -1,   346,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    -1,    24,    -1,    26,    27,    28,    -1,    30,
      -1,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    -1,    65,    66,    67,    -1,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
     111,   112,    -1,   114,   115,   116,    -1,   118,    -1,   120,
      -1,    -1,    -1,   124,   125,    -1,   127,   128,    -1,   130,
      -1,   132,   133,   134,   135,    -1,   137,   138,   139,    -1,
     141,   142,   143,   144,   145,   146,    -1,    -1,   149,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,    -1,
      -1,   162,    -1,   164,   165,   166,   167,   168,    -1,   170,
      -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,    -1,   208,    -1,   210,
     211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,   220,
     221,    -1,    -1,   224,    -1,    -1,   227,   228,   229,   230,
     231,    -1,   233,   234,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
      -1,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
      -1,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,    -1,   296,   297,    -1,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,   309,   310,
     311,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,
      27,    28,    -1,    30,    -1,    32,    33,    -1,    35,    36,
      37,    38,    39,    -1,    -1,    42,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    -1,    -1,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    -1,    65,    66,
      67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    84,    -1,    86,
      87,    88,    89,    90,    -1,    92,    -1,    -1,    95,    96,
      97,    98,    -1,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,   111,   112,    -1,   114,   115,   116,
      -1,   118,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,
     127,   128,    -1,   130,    -1,   132,   133,   134,   135,    -1,
     137,   138,   139,    -1,   141,   142,   143,   144,   145,   146,
      -1,    -1,   149,   150,   151,   152,   153,   154,   155,    -1,
     157,    -1,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,   168,    -1,   170,    -1,   172,    -1,    -1,   175,   176,
     177,    -1,    -1,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,   202,   203,    -1,   205,   206,
      -1,   208,    -1,   210,   211,   212,   213,    -1,    -1,   216,
      -1,    -1,    -1,   220,   221,    -1,    -1,   224,    -1,    -1,
     227,   228,   229,   230,   231,    -1,   233,   234,   235,   236,
     237,    -1,   239,   240,   241,   242,   243,   244,   245,   246,
     247,    -1,   249,   250,   251,   252,   253,   254,   255,   256,
     257,    -1,   259,   260,    -1,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,    -1,
     277,   278,   279,   280,    -1,   282,   283,    -1,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,    -1,   296,
     297,    -1,   299,   300,   301,   302,    -1,   304,   305,    -1,
      -1,   308,   309,   310,   311,    -1,   313,   314,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,    -1,    -1,
     337,   338,   339,   340,   341,   342,    -1,    -1,    -1,   346,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,
      -1,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,    -1,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,
      -1,   164,   165,   166,   167,   168,    -1,   170,    -1,   172,
      -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,    -1,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,    -1,    -1,    -1,   220,   221,    -1,
      -1,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,    -1,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,    28,
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
      39,    -1,    -1,    42,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    -1,    -1,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    -1,    65,    66,    67,    -1,
      69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
      79,    80,    81,    82,    -1,    84,    -1,    86,    87,    88,
      89,    90,    -1,    92,    -1,    -1,    95,    96,    97,    98,
      -1,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,   111,   112,    -1,   114,   115,   116,    -1,   118,
      -1,   120,    -1,    -1,    -1,   124,   125,    -1,   127,   128,
      -1,   130,    -1,   132,   133,   134,   135,    -1,   137,   138,
     139,    -1,   141,   142,   143,   144,   145,   146,    -1,    -1,
     149,   150,   151,   152,   153,   154,   155,    -1,   157,    -1,
     159,    -1,    -1,   162,    -1,   164,   165,   166,   167,   168,
      -1,   170,    -1,   172,    -1,    -1,   175,   176,   177,    -1,
      -1,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,   202,   203,    -1,   205,   206,    -1,   208,
      -1,   210,   211,   212,   213,    -1,    -1,   216,    -1,    -1,
      -1,   220,   221,    -1,    -1,   224,    -1,    -1,   227,   228,
     229,   230,   231,    -1,   233,   234,   235,   236,   237,    -1,
     239,   240,   241,   242,   243,   244,   245,   246,   247,    -1,
     249,   250,   251,   252,   253,   254,   255,   256,   257,    -1,
     259,   260,    -1,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,    -1,   277,   278,
     279,   280,    -1,   282,   283,    -1,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,    -1,   296,   297,    -1,
     299,   300,   301,   302,    -1,   304,   305,    -1,    -1,   308,
     309,   310,   311,    -1,   313,   314,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,    -1,    -1,   337,   338,
     339,   340,   341,   342,    -1,    -1,    -1,   346,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    12,    13,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,
      -1,    26,    27,    28,    -1,    30,    -1,    32,    33,    -1,
      35,    36,    37,    38,    39,    -1,    -1,    42,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    -1,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    -1,
      65,    66,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,
      75,    76,    77,    78,    79,    80,    81,    82,    -1,    84,
      -1,    86,    87,    88,    89,    90,    -1,    92,    -1,    -1,
      95,    96,    97,    98,    -1,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,   111,   112,    -1,   114,
     115,   116,    -1,   118,    -1,   120,    -1,    -1,    -1,   124,
     125,    -1,   127,   128,    -1,   130,    -1,   132,   133,   134,
     135,    -1,   137,   138,   139,    -1,   141,   142,   143,   144,
     145,   146,    -1,    -1,   149,   150,   151,   152,   153,   154,
     155,    -1,   157,    -1,   159,    -1,    -1,   162,    -1,   164,
     165,   166,   167,   168,    -1,   170,    -1,   172,    -1,    -1,
     175,   176,   177,    -1,    -1,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,    -1,   208,    -1,   210,   211,   212,   213,    -1,
      -1,   216,    -1,    -1,    -1,   220,   221,    -1,    -1,   224,
      -1,    -1,   227,   228,   229,   230,   231,    -1,   233,   234,
     235,   236,   237,    -1,   239,   240,   241,   242,   243,   244,
     245,   246,   247,    -1,   249,   250,   251,   252,   253,   254,
     255,   256,   257,    -1,   259,   260,    -1,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,    -1,   277,   278,   279,   280,    -1,   282,   283,    -1,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      -1,   296,   297,    -1,   299,   300,   301,   302,    -1,   304,
     305,    -1,    -1,   308,   309,   310,   311,    -1,   313,   314,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
      -1,    -1,   337,   338,   339,   340,   341,   342,    -1,    -1,
      -1,   346,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    -1,    24,    -1,    26,    27,    28,    -1,    30,
      -1,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    -1,    65,    66,    67,    -1,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
     111,   112,    -1,   114,   115,   116,    -1,   118,    -1,   120,
      -1,    -1,    -1,   124,   125,    -1,   127,   128,    -1,   130,
      -1,   132,   133,   134,   135,    -1,   137,   138,   139,    -1,
     141,   142,   143,   144,   145,   146,    -1,    -1,   149,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,    -1,
      -1,   162,    -1,   164,   165,   166,   167,   168,    -1,   170,
      -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,    -1,   208,    -1,   210,
     211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,   220,
     221,    -1,    -1,   224,    -1,    -1,   227,   228,   229,   230,
     231,    -1,   233,   234,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
      -1,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
      -1,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,    -1,   296,   297,    -1,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,   309,   310,
     311,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,
      27,    28,    -1,    30,    -1,    32,    33,    -1,    35,    36,
      37,    38,    39,    -1,    -1,    42,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    -1,    -1,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    -1,    65,    66,
      67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    84,    -1,    86,
      87,    88,    89,    90,    -1,    92,    -1,    -1,    95,    96,
      97,    98,    -1,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,   111,   112,    -1,   114,   115,   116,
      -1,   118,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,
     127,   128,    -1,   130,    -1,   132,   133,   134,   135,    -1,
     137,   138,   139,    -1,   141,   142,   143,   144,   145,   146,
      -1,    -1,   149,   150,   151,   152,   153,   154,   155,    -1,
     157,    -1,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,   168,    -1,   170,    -1,   172,    -1,    -1,   175,   176,
     177,    -1,    -1,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,   202,   203,    -1,   205,   206,
      -1,   208,    -1,   210,   211,   212,   213,    -1,    -1,   216,
      -1,    -1,    -1,   220,   221,    -1,    -1,   224,    -1,    -1,
     227,   228,   229,   230,   231,    -1,   233,   234,   235,   236,
     237,    -1,   239,   240,   241,   242,   243,   244,   245,   246,
     247,    -1,   249,   250,   251,   252,   253,   254,   255,   256,
     257,    -1,   259,   260,    -1,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,    -1,
     277,   278,   279,   280,    -1,   282,   283,    -1,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,    -1,   296,
     297,    -1,   299,   300,   301,   302,    -1,   304,   305,    -1,
      -1,   308,   309,   310,   311,    -1,   313,   314,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,    -1,    -1,
     337,   338,   339,   340,   341,   342,    -1,    -1,    -1,   346,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,
      -1,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,    -1,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,
      -1,   164,   165,   166,   167,   168,    -1,   170,    -1,   172,
      -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,    -1,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,    -1,    -1,    -1,   220,   221,    -1,
      -1,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,    -1,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,    28,
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
      39,    -1,    -1,    42,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    -1,    -1,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    -1,    65,    66,    67,    -1,
      69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
      79,    80,    81,    82,    -1,    84,    -1,    86,    87,    88,
      89,    90,    -1,    92,    -1,    -1,    95,    96,    97,    98,
      -1,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,   111,   112,    -1,   114,   115,   116,    -1,   118,
      -1,   120,    -1,    -1,    -1,   124,   125,    -1,   127,   128,
      -1,   130,    -1,   132,   133,   134,   135,    -1,   137,   138,
     139,    -1,   141,   142,   143,   144,   145,   146,    -1,    -1,
     149,   150,   151,   152,   153,   154,   155,    -1,   157,    -1,
     159,    -1,    -1,   162,    -1,   164,   165,   166,   167,   168,
      -1,   170,    -1,   172,    -1,    -1,   175,   176,   177,    -1,
      -1,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,   202,   203,    -1,   205,   206,    -1,   208,
      -1,   210,   211,   212,   213,    -1,    -1,   216,    -1,    -1,
      -1,   220,   221,    -1,    -1,   224,    -1,    -1,   227,   228,
     229,   230,   231,    -1,   233,   234,   235,   236,   237,    -1,
     239,   240,   241,   242,   243,   244,   245,   246,   247,    -1,
     249,   250,   251,   252,   253,   254,   255,   256,   257,    -1,
     259,   260,    -1,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,    -1,   277,   278,
     279,   280,    -1,   282,   283,    -1,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,    -1,   296,   297,    -1,
     299,   300,   301,   302,    -1,   304,   305,    -1,    -1,   308,
     309,   310,   311,    -1,   313,   314,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,    -1,    -1,   337,   338,
     339,   340,   341,   342,    -1,    -1,    -1,   346,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    12,    13,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,
      -1,    26,    27,    28,    -1,    30,    -1,    32,    33,    -1,
      35,    36,    37,    38,    39,    -1,    -1,    42,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    -1,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    -1,
      65,    66,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,
      75,    76,    77,    78,    79,    80,    81,    82,    -1,    84,
      -1,    86,    87,    88,    89,    90,    -1,    92,    -1,    -1,
      95,    96,    97,    98,    -1,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,   111,   112,    -1,   114,
     115,   116,    -1,   118,    -1,   120,    -1,    -1,    -1,   124,
     125,    -1,   127,   128,    -1,   130,    -1,   132,   133,   134,
     135,    -1,   137,   138,   139,    -1,   141,   142,   143,   144,
     145,   146,    -1,    -1,   149,   150,   151,   152,   153,   154,
     155,    -1,   157,    -1,   159,    -1,    -1,   162,    -1,   164,
     165,   166,   167,   168,    -1,   170,    -1,   172,    -1,    -1,
     175,   176,   177,    -1,    -1,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,    -1,   208,    -1,   210,   211,   212,   213,    -1,
      -1,   216,    -1,    -1,    -1,   220,   221,    -1,    -1,   224,
      -1,    -1,   227,   228,   229,   230,   231,    -1,   233,   234,
     235,   236,   237,    -1,   239,   240,   241,   242,   243,   244,
     245,   246,   247,    -1,   249,   250,   251,   252,   253,   254,
     255,   256,   257,    -1,   259,   260,    -1,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,    -1,   277,   278,   279,   280,    -1,   282,   283,    -1,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      -1,   296,   297,    -1,   299,   300,   301,   302,    -1,   304,
     305,    -1,    -1,   308,   309,   310,   311,    -1,   313,   314,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
      -1,    -1,   337,   338,   339,   340,   341,   342,    -1,    -1,
      -1,   346,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    -1,    24,    -1,    26,    27,    28,    -1,    30,
      -1,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    -1,    65,    66,    67,    -1,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
     111,   112,    -1,   114,   115,   116,    -1,   118,    -1,   120,
      -1,    -1,    -1,   124,   125,    -1,   127,   128,    -1,   130,
      -1,   132,   133,   134,   135,    -1,   137,   138,   139,    -1,
     141,   142,   143,   144,   145,   146,    -1,    -1,   149,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,    -1,
      -1,   162,    -1,   164,   165,   166,   167,   168,    -1,   170,
      -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,    -1,   208,    -1,   210,
     211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,   220,
     221,    -1,    -1,   224,    -1,    -1,   227,   228,   229,   230,
     231,    -1,   233,   234,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
      -1,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
      -1,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,    -1,   296,   297,    -1,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,   309,   310,
     311,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,   326,   327,   328,   329,   330,
     331,    -1,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
      -1,    -1,    19,    -1,    21,    22,    -1,    24,    -1,    26,
      27,    28,    -1,    30,    -1,    32,    33,    -1,    35,    36,
      37,    38,    39,    -1,    -1,    42,    43,    44,    45,    -1,
      47,    48,    49,    50,    51,    -1,    -1,    54,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    -1,    65,    66,
      67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    84,    -1,    86,
      87,    88,    89,    90,    -1,    92,    -1,    -1,    95,    96,
      97,    98,    -1,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,   111,   112,    -1,   114,   115,   116,
      -1,   118,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,
     127,   128,    -1,   130,    -1,   132,   133,   134,   135,    -1,
     137,   138,   139,    -1,   141,   142,   143,   144,   145,   146,
      -1,    -1,   149,   150,   151,   152,   153,   154,   155,    -1,
     157,    -1,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,   168,    -1,   170,    -1,   172,    -1,    -1,   175,   176,
     177,    -1,    -1,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,   202,   203,    -1,   205,   206,
      -1,   208,    -1,   210,   211,   212,   213,    -1,    -1,   216,
      -1,    -1,    -1,   220,   221,    -1,    -1,   224,    -1,    -1,
     227,   228,   229,   230,   231,    -1,   233,   234,   235,   236,
     237,    -1,   239,   240,   241,   242,   243,   244,   245,   246,
     247,    -1,   249,   250,   251,   252,   253,   254,   255,   256,
     257,    -1,   259,   260,    -1,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,    -1,
      -1,   278,   279,   280,    -1,   282,   283,    -1,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,    -1,   296,
     297,    -1,   299,   300,   301,   302,    -1,   304,   305,    -1,
      -1,   308,   309,   310,   311,    -1,   313,   314,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,   326,
     327,   328,   329,   330,   331,    -1,   333,   334,    -1,    -1,
     337,   338,   339,   340,   341,   342,    -1,    -1,    -1,   346,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    51,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,   111,   112,
      -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,
      -1,   124,   125,    -1,   127,   128,    -1,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,    -1,   149,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,
      -1,   164,   165,   166,   167,   168,    -1,   170,    -1,   172,
      -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,    -1,   208,    -1,   210,   211,   212,
     213,    -1,    -1,   216,    -1,    -1,    -1,   220,   221,    -1,
      -1,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
     233,   234,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,    -1,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,   309,   310,   311,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,   329,   330,   331,    -1,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,    28,
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
      39,    -1,    -1,    42,    43,    44,    45,    -1,    47,    48,
      49,    50,    51,    -1,    -1,    54,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    -1,    65,    66,    67,    -1,
      69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
      79,    80,    81,    82,    -1,    84,    -1,    86,    87,    88,
      89,    90,    -1,    92,    -1,    -1,    95,    96,    97,    98,
      -1,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,   111,   112,    -1,   114,   115,   116,    -1,   118,
      -1,   120,    -1,    -1,    -1,   124,   125,    -1,   127,   128,
      -1,   130,    -1,   132,   133,   134,   135,    -1,   137,   138,
     139,    -1,   141,   142,   143,   144,   145,   146,    -1,    -1,
     149,   150,   151,   152,   153,   154,   155,    -1,   157,    -1,
     159,    -1,    -1,   162,    -1,   164,   165,   166,   167,   168,
      -1,   170,    -1,   172,    -1,    -1,   175,   176,   177,    -1,
      -1,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,   202,   203,    -1,   205,   206,    -1,   208,
      -1,   210,   211,   212,   213,    -1,    -1,   216,    -1,    -1,
      -1,   220,   221,    -1,    -1,   224,    -1,    -1,   227,   228,
     229,   230,   231,    -1,   233,   234,   235,   236,   237,    -1,
     239,   240,   241,   242,   243,   244,   245,   246,   247,    -1,
     249,   250,   251,   252,   253,   254,   255,   256,   257,    -1,
     259,   260,    -1,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,    -1,   277,   278,
     279,   280,    -1,   282,   283,    -1,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,    -1,   296,   297,    -1,
     299,   300,   301,   302,    -1,   304,   305,    -1,    -1,   308,
     309,   310,   311,    -1,   313,   314,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,   326,   327,   328,
     329,   330,   331,    -1,   333,   334,    -1,    -1,   337,   338,
     339,   340,   341,   342,    -1,    -1,    -1,   346,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    12,    13,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,
      -1,    26,    27,    28,    -1,    30,    -1,    32,    33,    -1,
      35,    36,    37,    38,    39,    -1,    -1,    42,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    -1,    54,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    -1,
      65,    66,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,
      75,    76,    77,    78,    79,    80,    81,    82,    -1,    84,
      -1,    86,    87,    88,    89,    90,    -1,    92,    -1,    -1,
      95,    96,    97,    98,    -1,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,   111,   112,    -1,   114,
     115,   116,    -1,   118,    -1,   120,    -1,    -1,    -1,   124,
     125,    -1,   127,   128,    -1,   130,    -1,   132,   133,   134,
     135,    -1,   137,   138,   139,    -1,   141,   142,   143,   144,
     145,   146,    -1,    -1,   149,   150,   151,   152,   153,   154,
     155,    -1,   157,    -1,   159,    -1,    -1,   162,    -1,   164,
     165,   166,   167,   168,    -1,   170,    -1,   172,    -1,    -1,
     175,   176,   177,    -1,    -1,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,    -1,   208,    -1,   210,   211,   212,   213,    -1,
      -1,   216,    -1,    -1,    -1,   220,   221,    -1,    -1,   224,
      -1,    -1,   227,   228,   229,   230,   231,    -1,   233,   234,
     235,   236,   237,    -1,   239,   240,   241,   242,   243,   244,
     245,   246,   247,    -1,   249,   250,   251,   252,   253,   254,
     255,   256,   257,    -1,   259,   260,    -1,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,    -1,   277,   278,   279,   280,    -1,   282,   283,    -1,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      -1,   296,   297,    -1,   299,   300,   301,   302,    -1,   304,
     305,    -1,    -1,   308,   309,   310,   311,    -1,   313,   314,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,   326,   327,   328,   329,   330,   331,    -1,   333,   334,
      -1,    -1,   337,   338,   339,   340,   341,   342,    -1,    -1,
      -1,   346,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    -1,    24,    -1,    26,    27,    28,    -1,    30,
      -1,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      -1,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    -1,    63,    -1,    65,    66,    67,    -1,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,    -1,   110,
     111,    -1,    -1,   114,   115,   116,    -1,   118,    -1,   120,
      -1,    -1,    -1,   124,   125,    -1,   127,    -1,    -1,   130,
      -1,   132,   133,   134,   135,    -1,   137,   138,   139,   140,
     141,   142,   143,   144,   145,   146,    -1,    -1,   149,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,    -1,
      -1,   162,    -1,   164,   165,   166,   167,   168,    -1,    -1,
      -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,   206,    -1,   208,    -1,    -1,
     211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,   220,
     221,    -1,    -1,   224,    -1,    -1,    -1,   228,   229,   230,
     231,    -1,    -1,    -1,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
      -1,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
      -1,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,    -1,   294,    -1,   296,   297,    -1,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,    -1,   310,
      -1,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,   326,   327,   328,    -1,   330,
     331,    -1,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,
      27,    28,    -1,    30,    -1,    32,    33,    -1,    35,    36,
      37,    38,    39,    -1,    -1,    42,    43,    44,    45,    -1,
      47,    48,    49,    50,    -1,    -1,    -1,    54,    55,    56,
      57,    58,    -1,    60,    61,    -1,    63,    -1,    65,    66,
      67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    84,    -1,    86,
      87,    88,    89,    90,    -1,    92,    -1,    -1,    95,    96,
      97,    98,    -1,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,    -1,   110,   111,    -1,    -1,   114,   115,   116,
      -1,   118,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,
     127,    -1,    -1,   130,    -1,   132,   133,   134,   135,    -1,
     137,   138,   139,    -1,   141,   142,   143,   144,   145,   146,
      -1,    -1,    -1,   150,   151,   152,   153,   154,   155,    -1,
     157,    -1,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,   176,
     177,    -1,    -1,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,   202,   203,    -1,   205,   206,
      -1,   208,    -1,    -1,   211,   212,   213,    -1,    -1,   216,
      -1,    -1,    -1,   220,   221,    -1,    -1,    -1,    -1,    -1,
      -1,   228,   229,   230,   231,    -1,    -1,    -1,   235,   236,
     237,    -1,   239,   240,   241,   242,   243,   244,   245,   246,
     247,    -1,   249,   250,   251,   252,   253,   254,   255,   256,
     257,    -1,   259,   260,    -1,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,    -1,
     277,   278,   279,   280,    -1,   282,   283,    -1,   285,   286,
     287,   288,   289,   290,   291,   292,    -1,   294,    -1,   296,
     297,    -1,   299,   300,   301,   302,    -1,   304,   305,    -1,
      -1,   308,    -1,   310,    -1,    -1,   313,   314,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,   326,
     327,   328,    -1,   330,   331,    -1,   333,   334,    -1,    -1,
     337,   338,   339,   340,   341,   342,    -1,    -1,    -1,   346,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,
      -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,    32,
      33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
      43,    44,    45,    -1,    47,    48,    49,    50,    -1,    -1,
      -1,    54,    55,    56,    57,    58,    -1,    60,    61,    -1,
      63,    -1,    65,    66,    67,    -1,    69,    -1,    -1,    -1,
      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    84,    -1,    86,    87,    88,    89,    90,    -1,    92,
      -1,    -1,    95,    96,    97,    98,    -1,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,    -1,   110,   111,    -1,
      -1,   114,   115,   116,    -1,   118,    -1,   120,    -1,    -1,
      -1,   124,   125,    -1,   127,    -1,    -1,   130,    -1,   132,
     133,   134,   135,    -1,   137,   138,   139,    -1,   141,   142,
     143,   144,   145,   146,    -1,    -1,    -1,   150,   151,   152,
     153,   154,   155,    -1,   157,    -1,   159,    -1,    -1,   162,
      -1,   164,   165,   166,   167,   168,    -1,    -1,    -1,   172,
      -1,    -1,   175,   176,   177,    -1,    -1,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,   202,
     203,    -1,   205,   206,    -1,   208,    -1,    -1,   211,   212,
     213,    -1,    -1,   216,    -1,    -1,    -1,   220,   221,    -1,
      -1,    -1,    -1,    -1,    -1,   228,   229,   230,   231,    -1,
      -1,    -1,   235,   236,   237,    -1,   239,   240,   241,   242,
     243,   244,   245,   246,   247,    -1,   249,   250,   251,   252,
     253,   254,   255,   256,   257,    -1,   259,   260,    -1,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,    -1,   277,   278,   279,   280,    -1,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
      -1,   294,    -1,   296,   297,    -1,   299,   300,   301,   302,
      -1,   304,   305,    -1,    -1,   308,    -1,   310,    -1,    -1,
     313,   314,   315,   316,   317,    -1,    -1,   320,   321,   322,
     323,    -1,    -1,   326,   327,   328,    -1,   330,   331,    -1,
     333,   334,    -1,    -1,   337,   338,   339,   340,   341,   342,
      -1,    -1,    -1,   346,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,    28,
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
      39,    -1,    -1,    42,    43,    44,    45,    -1,    47,    48,
      49,    50,    -1,    -1,    -1,    54,    55,    56,    57,    58,
      -1,    60,    61,    -1,    63,    -1,    65,    66,    67,    -1,
      69,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
      79,    80,    81,    82,    -1,    84,    -1,    86,    87,    88,
      89,    90,    -1,    92,    -1,    -1,    95,    96,    97,    98,
      -1,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
      -1,   110,   111,    -1,    -1,   114,   115,   116,    -1,   118,
      -1,   120,    -1,    -1,    -1,   124,   125,    -1,   127,    -1,
      -1,   130,    -1,   132,   133,   134,   135,    -1,   137,   138,
     139,    -1,   141,   142,   143,   144,   145,   146,    -1,    -1,
      -1,   150,   151,   152,   153,   154,   155,    -1,   157,    -1,
     159,    -1,    -1,   162,    -1,   164,   165,   166,   167,   168,
      -1,    -1,    -1,   172,    -1,    -1,   175,   176,   177,    -1,
      -1,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,   206,    -1,   208,
     209,    -1,   211,   212,   213,    -1,    -1,   216,    -1,    -1,
      -1,   220,   221,    -1,    -1,    -1,    -1,    -1,    -1,   228,
     229,   230,   231,    -1,    -1,    -1,   235,   236,   237,    -1,
     239,   240,   241,   242,   243,   244,   245,   246,   247,    -1,
     249,   250,   251,   252,   253,   254,   255,   256,   257,    -1,
     259,   260,    -1,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,    -1,   277,   278,
     279,   280,    -1,   282,   283,    -1,   285,   286,   287,   288,
     289,   290,   291,   292,    -1,   294,    -1,   296,   297,    -1,
     299,   300,   301,   302,    -1,   304,   305,    -1,    -1,   308,
      -1,   310,    -1,    -1,   313,   314,   315,   316,   317,    -1,
      -1,   320,   321,   322,   323,    -1,    -1,   326,   327,   328,
      -1,   330,   331,    -1,   333,   334,    -1,    -1,   337,   338,
     339,   340,   341,   342,    -1,    -1,    -1,   346,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    12,    13,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,
      -1,    26,    27,    28,    -1,    30,    -1,    32,    33,    -1,
      35,    36,    37,    38,    39,    -1,    -1,    42,    43,    44,
      45,    -1,    47,    48,    49,    50,    -1,    -1,    -1,    54,
      55,    56,    57,    58,    -1,    60,    61,    -1,    63,    -1,
      65,    66,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,
      75,    76,    77,    78,    79,    80,    81,    82,    -1,    84,
      -1,    86,    87,    88,    89,    90,    -1,    92,    -1,    -1,
      95,    96,    97,    98,    -1,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,    -1,   110,   111,    -1,    -1,   114,
     115,   116,    -1,   118,    -1,   120,    -1,    -1,    -1,   124,
     125,    -1,   127,    -1,    -1,   130,    -1,   132,   133,   134,
     135,    -1,   137,   138,   139,    -1,   141,   142,   143,   144,
     145,   146,    -1,    -1,    -1,   150,   151,   152,   153,   154,
     155,    -1,   157,    -1,   159,    -1,    -1,   162,    -1,   164,
     165,   166,   167,   168,    -1,    -1,    -1,   172,    -1,    -1,
     175,   176,   177,    -1,    -1,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,   206,    -1,   208,    -1,    -1,   211,   212,   213,    -1,
      -1,   216,    -1,    -1,    -1,   220,   221,    -1,    -1,    -1,
      -1,    -1,    -1,   228,   229,   230,   231,    -1,    -1,    -1,
     235,   236,   237,    -1,   239,   240,   241,   242,   243,   244,
     245,   246,   247,    -1,   249,   250,   251,   252,   253,   254,
     255,   256,   257,    -1,   259,   260,    -1,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,    -1,   277,   278,   279,   280,    -1,   282,   283,    -1,
     285,   286,   287,   288,   289,   290,   291,   292,    -1,   294,
      -1,   296,   297,    -1,   299,   300,   301,   302,    -1,   304,
     305,    -1,    -1,   308,    -1,   310,    -1,    -1,   313,   314,
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,    -1,
      -1,   326,   327,   328,    -1,   330,   331,    -1,   333,   334,
      -1,    -1,   337,   338,   339,   340,   341,   342,    -1,    -1,
      -1,   346,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    -1,    24,    -1,    26,    27,    28,    -1,    30,
      -1,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
      -1,    42,    43,    44,    45,    -1,    47,    48,    49,    50,
      -1,    -1,    -1,    54,    55,    56,    57,    58,    -1,    60,
      61,    -1,    63,    -1,    65,    66,    67,    -1,    69,    -1,
      -1,    -1,    -1,    -1,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    84,    -1,    86,    87,    88,    89,    90,
      -1,    92,    -1,    -1,    95,    96,    97,    98,    -1,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,    -1,   110,
     111,    -1,    -1,   114,   115,   116,    -1,   118,    -1,   120,
      -1,    -1,    -1,   124,   125,    -1,   127,    -1,    -1,   130,
      -1,   132,   133,   134,   135,    -1,   137,   138,   139,    -1,
     141,   142,   143,   144,   145,   146,    -1,    -1,    -1,   150,
     151,   152,   153,   154,   155,    -1,   157,    -1,   159,    -1,
      -1,   162,    -1,   164,   165,   166,   167,   168,    -1,    -1,
      -1,   172,    -1,    -1,   175,   176,   177,    -1,    -1,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,   206,    -1,   208,    -1,    -1,
     211,   212,   213,    -1,    -1,   216,    -1,    -1,    -1,   220,
     221,    -1,    -1,    -1,    -1,    -1,    -1,   228,   229,   230,
     231,    -1,    -1,    -1,   235,   236,   237,    -1,   239,   240,
     241,   242,   243,   244,   245,   246,   247,    -1,   249,   250,
     251,   252,   253,   254,   255,   256,   257,    -1,   259,   260,
      -1,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,    -1,   277,   278,   279,   280,
      -1,   282,   283,    -1,   285,   286,   287,   288,   289,   290,
     291,   292,    -1,   294,    -1,   296,   297,    -1,   299,   300,
     301,   302,    -1,   304,   305,    -1,    -1,   308,    -1,   310,
      -1,    -1,   313,   314,   315,   316,   317,    -1,    -1,   320,
     321,   322,   323,    -1,    -1,   326,   327,   328,    -1,   330,
     331,    -1,   333,   334,    -1,    -1,   337,   338,   339,   340,
     341,   342,    -1,    -1,    -1,   346,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,
      27,    28,    -1,    30,    -1,    32,    33,    -1,    35,    36,
      37,    38,    39,    -1,    -1,    42,    43,    44,    45,    -1,
      47,    48,    49,    50,    -1,    -1,    -1,    54,    55,    56,
      57,    58,    -1,    60,    61,    -1,    63,    -1,    65,    66,
      67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    84,    -1,    86,
      87,    88,    89,    90,    -1,    92,    -1,    -1,    95,    96,
      97,    98,    -1,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,    -1,   110,   111,    -1,    -1,   114,   115,   116,
      -1,   118,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,
     127,    -1,    -1,   130,    -1,   132,   133,   134,   135,    -1,
     137,   138,   139,    -1,   141,   142,   143,   144,   145,   146,
      -1,    -1,    -1,   150,   151,   152,   153,   154,   155,    -1,
     157,    -1,   159,    -1,    -1,   162,    -1,   164,   165,   166,
     167,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,   176,
     177,    -1,    -1,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,   206,
      -1,   208,    -1,    -1,   211,   212,   213,    -1,    -1,   216,
      -1,    -1,    -1,   220,   221,    -1,    -1,    -1,    -1,    -1,
      -1,   228,   229,   230,   231,    -1,    -1,    -1,   235,   236,
     237,    -1,   239,   240,   241,   242,   243,   244,   245,   246,
     247,    -1,   249,   250,   251,   252,   253,   254,   255,   256,
     257,    -1,   259,   260,    -1,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,    -1,
     277,    -1,   279,   280,    -1,   282,   283,    -1,   285,   286,
     287,   288,   289,   290,   291,   292,    -1,   294,    -1,   296,
     297,    -1,   299,   300,   301,   302,    -1,   304,   305,    -1,
      -1,   308,    -1,   310,    -1,    -1,   313,   314,   315,   316,
     317,    -1,    -1,   320,   321,   322,   323,    -1,    -1,   326,
     327,   328,    -1,   330,   331,    -1,   333,   334,    -1,    -1,
     337,   338,   339,   340,   341,   342,    -1,    -1,    -1,   346
};

/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
   symbol of state STATE-NUM.  */
static const unsigned short yystos[] =
{
       0,     3,    13,    14,    15,    28,    47,    49,    50,    54,
      55,    63,    64,    79,    82,    88,    97,   103,   108,   110,
     114,   126,   152,   175,   176,   181,   189,   206,   236,   246,
     249,   251,   255,   260,   263,   267,   272,   277,   280,   286,
     313,   321,   323,   326,   329,   367,   375,   376,   377,   378,
     382,   383,   384,   385,   386,   387,   388,   389,   390,   392,
     393,   397,   408,   409,   410,   413,   414,   422,   423,   432,
     460,   464,   465,   472,   477,   479,   481,   482,   495,   496,
     497,   498,   508,   513,   514,   515,   516,   521,   522,   525,
     528,   529,   539,   540,   543,   549,   563,   566,   567,   568,
     571,   573,   575,   578,   580,   581,   582,   590,   591,   592,
     593,   594,   599,   601,   602,   606,   607,   610,   611,   612,
     614,   615,   616,   617,   618,   623,   626,   630,   632,   633,
     638,   640,   644,   651,   654,   655,   656,   657,   658,   679,
     308,   339,   595,    10,    61,    77,    95,   124,   129,   143,
     166,   220,   262,   268,   273,   298,   299,   310,   315,   324,
     595,     3,     4,     5,     6,     7,     8,     9,    10,    12,
      13,    21,    22,    24,    26,    27,    28,    30,    32,    33,
      35,    36,    37,    38,    39,    42,    43,    44,    45,    47,
      48,    49,    50,    51,    54,    55,    56,    57,    58,    60,
      61,    62,    63,    65,    66,    67,    69,    75,    76,    77,
      78,    79,    80,    81,    82,    84,    86,    87,    88,    89,
      90,    92,    95,    96,    97,    98,   100,   101,   102,   104,
     106,   107,   108,   109,   110,   111,   112,   114,   115,   116,
     118,   120,   124,   125,   127,   128,   130,   132,   133,   134,
     135,   137,   138,   139,   141,   142,   143,   144,   145,   146,
     149,   150,   151,   152,   153,   154,   155,   157,   159,   162,
     164,   165,   166,   167,   168,   170,   172,   175,   176,   177,
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
     190,   191,   193,   195,   196,   197,   198,   199,   200,   201,
     202,   203,   205,   206,   208,   210,   211,   212,   213,   216,
     220,   221,   224,   227,   228,   229,   230,   231,   233,   234,
     235,   236,   237,   239,   240,   241,   242,   243,   244,   245,
     246,   247,   249,   250,   251,   252,   253,   254,   255,   256,
     257,   259,   260,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,   273,   274,   275,   277,   278,   279,   280,
     282,   283,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   296,   297,   299,   300,   301,   302,   304,   305,
     308,   309,   310,   311,   313,   314,   315,   316,   317,   320,
     321,   322,   323,   326,   327,   328,   329,   330,   331,   333,
     334,   337,   338,   339,   340,   341,   342,   346,   762,   774,
     778,   779,   194,   217,   758,   760,   766,   774,   782,   218,
     237,   595,    31,   428,   655,    10,    21,    41,    59,    77,
      83,    95,   125,   129,   177,   220,   222,   262,   268,   299,
     300,   302,   310,   314,   315,   319,   324,   433,   473,   511,
     544,   550,   236,   762,   762,   122,    10,    21,    41,    61,
      77,    95,   124,   129,   143,   220,   228,   241,   262,   266,
     268,   273,   298,   299,   310,   315,   324,   333,   478,   517,
     595,   762,   618,   625,     4,    11,    26,   115,   120,   168,
     195,   239,   250,   352,   359,   526,   762,   773,    11,    64,
     248,   272,   530,   531,   532,   774,   158,   760,   774,   348,
     767,   771,   298,   661,   526,   762,   760,   308,   762,   228,
      77,   143,   297,   298,   576,   267,   774,    11,   275,   304,
     308,   399,   774,     8,   126,   530,   531,   237,   595,   774,
      11,    93,   663,    60,   177,   190,   262,   275,   304,   308,
     398,   399,    11,   275,   304,   308,   399,   308,   661,   360,
     760,   219,   688,   689,   760,   123,   620,   367,   755,   655,
     656,     0,   371,   332,   619,   105,   156,   223,   318,   664,
     665,   372,    25,    29,    31,    68,   121,   123,   136,   148,
     160,   161,   163,   171,   173,   192,   207,   225,   226,   261,
     281,   332,   346,   758,   768,   776,   778,   780,   519,   774,
     763,   774,   519,   538,   768,   772,   774,   688,   762,    48,
     351,   354,   355,   356,   358,   359,   360,   361,   362,   363,
     570,   724,   725,   774,   772,   762,   688,   760,   688,   762,
     762,   519,   772,   162,   244,   596,   597,   598,   365,   370,
     749,   750,   218,    10,    41,    53,    59,    61,    77,    95,
     124,   143,   167,   220,   262,   266,   268,   273,   298,   299,
     310,   315,   333,   478,   523,   771,   760,   306,   768,   762,
     367,   310,   763,   519,   300,   302,   772,   300,   302,    48,
     570,   254,   772,   394,   774,   762,   762,   519,   772,   273,
     298,   333,   478,    61,   143,   124,   266,   762,   652,   689,
     135,   768,   762,   135,   574,   135,   763,   135,   768,   135,
     761,   762,    48,   135,   570,    35,   135,   761,   135,   762,
     135,   762,   135,   762,   135,   761,   166,   135,   518,   519,
     367,   631,   619,   773,    11,   773,    11,   773,   773,   352,
     122,   140,   527,   240,   218,   306,   372,   760,   759,   760,
     527,   771,   367,   627,    35,   762,   762,   760,   774,    25,
     342,   162,   370,   221,   221,   218,   122,   771,   306,   218,
      18,    30,    32,    33,    40,    41,    43,    44,    51,    62,
      70,    71,    72,    73,    74,    80,    81,    96,   109,   112,
     113,   116,   128,   154,   155,   157,   170,   178,   179,   191,
     193,   204,   209,   210,   211,   220,   227,   233,   245,   264,
     276,   283,   293,   304,   305,   309,   311,   312,   319,   324,
     330,   346,   347,   349,   350,   351,   352,   353,   358,   359,
     360,   367,   655,   697,   698,   699,   704,   705,   706,   708,
     709,   710,   711,   714,   715,   718,   720,   721,   722,   726,
     743,   748,   756,   757,   758,   768,   769,   770,   771,   775,
     778,    11,   411,   759,   275,   398,    83,   406,   771,   348,
     407,   774,    25,    45,   398,   342,   597,   306,   354,    25,
     342,   162,   598,   759,   367,   760,    19,   774,   277,   360,
     121,   621,    83,   718,   753,   754,   368,   368,   377,   760,
      11,    93,   662,   662,    35,   662,   117,   174,   215,   668,
     674,   676,   677,   755,   750,   367,   503,   229,   252,   370,
     520,   229,   252,   277,   337,   379,   409,     7,    97,   229,
     277,   419,    37,   111,   138,   259,   271,   285,   292,   334,
     559,   564,   367,   551,     7,    97,   252,   391,   229,   252,
     255,   277,   417,   418,   252,   519,   367,   370,   252,   277,
     379,   409,   229,   252,   277,   466,     7,    13,    50,    92,
      97,   100,   145,   196,   252,   277,   415,   416,   418,   229,
     252,   218,   229,   277,   252,   277,   379,   409,   172,   219,
     340,   372,   596,   718,    11,    14,    15,    16,    17,    18,
      19,    20,    23,    34,    40,    41,    46,    52,    53,    59,
      64,    70,    71,    72,    73,    74,    83,    85,    91,    93,
      94,    99,   103,   105,   113,   117,   119,   122,   126,   129,
     131,   140,   147,   156,   158,   169,   174,   178,   179,   194,
     204,   209,   214,   215,   217,   218,   219,   222,   223,   232,
     238,   248,   258,   272,   276,   284,   295,   298,   303,   306,
     307,   312,   318,   319,   324,   325,   335,   336,   346,   360,
     765,   777,   778,   779,   780,   781,   749,   760,   768,   367,
     762,   768,   212,    48,   570,   762,   762,   166,   519,   367,
     447,   289,   290,   425,   771,   367,   503,   505,    46,    30,
      32,    33,    43,    44,    80,    81,   116,   154,   155,   157,
     191,   193,   211,   245,   278,   283,   304,   305,   330,   346,
     694,   696,   698,   699,   703,   705,   706,   707,   709,   710,
     714,   715,   775,   778,   762,   379,    19,   613,   379,   519,
     367,   499,   433,   379,    25,   395,   229,   480,     9,    27,
     483,    19,   499,   379,   760,   760,   760,   166,   519,    57,
     766,   774,   768,   762,    31,    75,   151,   196,   269,   325,
     639,   109,   503,    38,   257,   420,   109,   367,   109,   109,
     551,   109,   372,   135,   519,   109,   367,   761,   109,   109,
     218,   109,   109,   218,   109,   135,   407,   109,   372,   420,
     718,   729,    64,   624,   630,   633,   638,   644,   651,   654,
     762,    77,   124,   166,   268,   273,   298,   299,   533,   759,
     761,   532,    83,   367,   634,   654,   140,   372,   641,   762,
     628,   694,    19,   761,   118,   577,   577,   577,   172,   774,
     117,   117,   533,   761,   267,   774,   367,   365,   655,   733,
     331,   712,   718,   747,   367,   712,   712,   367,   367,   367,
     367,   367,   702,   702,   234,   655,   367,   367,   700,   367,
     367,   367,   367,    43,    44,   712,   718,   367,   367,   701,
     367,   367,   367,   367,   367,   337,   338,   367,   716,   367,
     716,   367,   367,   655,   751,   718,   718,   329,   655,   718,
     729,   771,    44,   367,   713,   367,   771,    16,    19,    24,
      29,   136,   140,   160,   161,   173,   204,   207,   220,   222,
     281,   351,   354,   355,   356,   358,   359,   360,   361,   362,
     363,   369,   724,   726,   728,   226,   718,   158,   372,   659,
     750,   367,    86,   137,   412,    45,    83,   407,    19,    83,
     177,   346,   347,   359,   405,   469,   470,   471,   715,   771,
     773,    83,   113,   214,   218,   312,   400,   401,   402,   404,
     407,   469,   400,   172,   420,   760,   774,   367,   645,   646,
     647,   648,   649,   774,   619,   368,   372,   367,   622,   655,
     657,   658,   657,   666,   667,   718,   657,   244,   279,   323,
      11,   670,   718,   671,   718,   674,   675,   668,   669,   117,
     677,   360,   504,   694,   229,   252,   277,   306,   306,   765,
     370,   306,   306,   398,   608,    46,    59,   119,   238,   319,
     445,   446,    59,    83,   204,   306,    83,   204,   268,   218,
     271,   209,    87,   159,   257,   559,   565,   140,   149,   224,
     278,   346,   368,   552,   553,   554,   555,   557,   694,   775,
     776,   778,   229,   252,   277,   306,   324,   306,   306,   499,
     299,   499,   372,   306,   325,   202,   569,   694,   570,   306,
     398,   380,   306,   306,   268,    36,    76,   142,   184,   186,
     196,   228,   256,   286,   467,    53,   445,   579,   579,   218,
     310,    59,   579,   310,   760,   145,   306,   579,   268,   338,
     372,   306,   306,   688,   306,   268,   306,   398,   380,   244,
     253,   274,   403,   596,   366,   373,   503,   694,   218,   551,
     469,   519,   367,   160,   218,   218,   519,   160,   448,   449,
     774,   337,   429,   379,   346,   506,   507,   499,   367,   696,
      19,    18,   695,    78,   134,   185,   188,   270,   341,   367,
     717,   520,     9,   603,   694,   380,   511,   500,   501,   777,
     333,   380,   772,    64,   126,   396,   432,   464,   482,   528,
     543,   599,   762,   180,    88,   152,   323,   484,   485,   367,
     380,   466,   213,   367,   461,   447,   407,   117,   766,   218,
     551,    19,   337,   338,   653,   269,   367,   655,   681,   682,
     683,   688,   690,   721,   758,   336,   691,   768,   420,   694,
     763,   768,   420,   761,   762,   109,   325,   570,   569,   420,
     761,   762,   760,   762,   762,   760,   761,   109,   420,   518,
     519,   368,   372,   433,   761,   537,   538,   768,   761,   761,
     759,   759,   761,   306,   337,   541,   329,   635,   636,   774,
     258,   637,     5,   107,   264,   279,   642,   760,   208,   643,
     368,   372,   629,   633,   638,   644,   654,   306,   531,   530,
     531,   122,   127,   542,   774,   729,   729,   732,   733,   367,
     335,   744,   745,   718,   729,   718,   729,   770,   770,   770,
      78,   134,   185,   188,   270,   341,   346,   348,   730,   734,
     770,   729,   729,   770,   770,   712,   712,   718,   770,   570,
     718,   735,   358,   359,   719,   720,   722,   726,   737,   368,
     729,   718,   729,   738,   304,   304,   770,   770,   718,    34,
     122,   169,   307,   718,   729,   741,   749,   368,   372,   277,
     770,   770,   717,   718,   777,   304,    23,   295,   752,   718,
     367,   655,   742,    93,   113,   204,   209,   213,   312,   320,
     718,    29,   136,   140,   173,   281,   367,   718,   306,   718,
     718,   718,   718,   718,   718,   718,   718,   718,   694,   718,
      11,    17,   284,   723,   264,   367,   722,   125,   177,   298,
     300,   302,   660,   760,   757,   122,   680,    11,    93,   360,
     368,   729,   308,   347,   367,   771,   372,   368,   649,   650,
     372,   680,   354,   751,   617,   760,   753,   761,   372,    20,
      91,   325,   219,   213,   678,   678,   215,   372,   174,   368,
     368,   372,   306,   306,   268,   772,   762,   765,   772,   763,
      58,   609,   367,   762,   164,   164,   367,   762,   209,   772,
     718,   209,   762,   209,    87,   159,   218,   224,   775,   368,
     372,   555,   557,   554,   557,   520,   306,   306,   268,   772,
     761,   772,   762,   762,   418,   762,   764,   774,   372,   368,
     372,   772,     8,    58,    65,    66,    67,   102,   140,   145,
     182,   197,   198,   199,   200,   201,   203,   231,   262,   294,
     296,   317,   324,   327,   381,   772,   762,   762,   469,    35,
     468,   469,   469,    76,   184,   186,    35,   379,   379,   437,
     774,   774,   762,    11,   324,   762,   762,   774,    11,   324,
     762,   760,   762,   762,   762,    50,   216,   277,   416,   772,
     762,   252,   772,   762,   772,    56,   316,   244,   718,   160,
      19,   519,   160,   160,   325,   569,   209,   524,   771,   519,
     519,   160,   524,   368,   372,   216,   122,   306,   424,   426,
     354,   368,   372,   718,    18,   695,   694,   365,   365,   306,
     306,   306,   306,   770,   484,    58,   101,   180,   229,   299,
     301,   604,   438,   117,   368,   372,   354,   760,   395,   222,
     433,   771,   218,   222,   692,   693,   774,   760,   173,   434,
     435,   436,   437,   442,   445,   462,   463,   774,   337,   338,
     456,    19,   130,   771,   218,   760,    19,   166,   259,   558,
     559,   560,   583,   133,   133,   117,   655,   682,   683,    19,
     684,   774,   372,    68,   123,   148,   163,   171,   192,   261,
     685,   684,    19,   684,   774,   750,   718,   637,   503,    19,
     551,   519,   764,   367,   368,   218,   420,   218,   420,   407,
     420,   718,   298,   372,   551,   129,   534,   535,   772,     8,
     542,   368,   372,   751,   756,   107,   279,   107,   279,   264,
     323,   187,   694,   762,   122,   218,   534,    35,   420,   368,
     366,   366,   372,   770,   718,    99,   745,   746,    19,   368,
     325,   368,   368,   368,   368,   372,   368,   122,   368,   368,
     368,   368,   368,   372,   368,   372,   368,   232,   736,   368,
     719,   719,   140,   160,   220,   354,   355,   356,   358,   359,
     360,   361,   362,   363,   369,   726,   719,   368,   368,   117,
     122,   739,   740,   368,   342,   342,   368,   368,    19,   741,
     729,   741,   741,   122,   368,   751,   718,   774,   368,   368,
     342,   719,   719,   104,   729,   122,    93,   113,   209,   213,
     312,   320,   367,   104,   295,   752,   718,   742,   718,   306,
     570,   718,   367,   655,   300,   302,   300,   302,   760,   661,
     661,   681,   691,   729,   729,   368,   368,   597,   770,   717,
     402,   368,   372,   646,   691,   753,   368,   667,   220,   724,
     727,   761,   643,   643,   671,   671,   670,   694,   772,   762,
     762,   174,   718,   446,   367,   367,   448,   420,   150,   209,
     520,   553,   557,   557,   362,   772,   762,   762,   229,   252,
     694,   229,   202,   694,   761,   174,   231,   129,   262,   209,
     771,   761,   770,   231,   761,   322,   469,   519,   469,   469,
     694,    97,   277,   315,   419,   420,   420,   306,   306,   366,
     524,   694,   160,   524,   524,   764,   368,   160,   160,   524,
     449,   425,    31,    69,    89,   104,   118,   132,   209,   216,
     243,   427,   220,   359,   469,   502,   557,   727,   771,   780,
     781,   346,   507,   368,   365,   368,   770,   366,   770,   134,
     185,   270,   185,   270,   270,   188,   368,   218,   174,   354,
     605,   605,   605,   605,   605,    46,    59,    83,    85,   147,
     204,   209,   238,   248,   319,   439,   440,   441,   315,   501,
     502,   447,   254,   298,   760,   485,   368,   372,   694,   367,
     760,   368,   372,   368,   372,   216,   499,   216,   218,   457,
     654,   474,   762,   306,   760,   325,   545,   561,   771,   407,
     556,   557,   337,   560,   562,   218,   654,   368,   774,   367,
     682,   163,   225,   686,   682,   686,   163,   685,   686,   163,
     367,   774,   367,   420,   694,   420,   325,   420,   569,   420,
     760,   760,   420,   760,   538,   772,   337,   372,   536,   221,
     654,   636,   107,   107,   761,   533,   420,   772,   733,   368,
     303,   718,   103,   694,   519,   770,   718,   718,   770,   718,
     739,   719,    93,   204,   213,   719,   719,   719,   719,   719,
     719,   719,   719,   719,   694,   719,   718,   718,   740,   739,
     716,   716,   694,   368,   368,   368,   729,   368,   713,   771,
     718,    16,    16,   718,   368,   718,   122,   367,   694,   731,
     718,   719,   719,   104,   104,   718,   368,   104,   718,   661,
     661,   661,   661,   760,   760,   129,   672,   368,   368,   368,
     354,   649,   637,   367,   605,   368,   448,   448,   368,   150,
     362,   315,   306,   306,   306,   773,   771,   761,   761,   771,
     771,   438,   204,   204,   288,   291,   694,   762,   762,   368,
     524,   160,   160,   524,   524,   325,   430,   431,   613,   613,
     204,   243,   613,   613,    85,   147,   204,   492,   493,   494,
     770,   337,   338,   366,   366,   717,   760,   605,    83,   770,
     771,    83,   771,    83,   762,    83,   762,    83,   762,   367,
     762,   719,    86,   137,    85,   209,   164,   760,   562,   694,
      19,   760,   117,   486,   222,   693,   434,   443,   146,   455,
     436,   463,   774,    55,   299,   458,   343,   344,   345,   600,
     328,   475,   520,   771,   545,   764,   367,   372,   558,   499,
      88,   152,   272,   323,   588,   684,   367,   761,   682,   218,
     325,   687,   682,   163,   682,   692,   367,   692,   774,   368,
     764,   368,   420,   420,   367,   461,   126,   535,   542,   122,
     718,   368,   368,   368,   368,   368,   740,   122,    93,   213,
     367,   368,   717,   719,   719,   718,   731,   368,   372,    16,
      16,   718,   718,   104,   718,   368,   760,   760,   760,   760,
      35,   131,   673,   771,   755,   570,   773,   368,   368,   562,
     315,   772,   762,   772,   209,   209,   471,   774,   325,   421,
     160,   524,   524,   379,    90,   771,   771,   209,   448,   771,
     771,    86,   137,    85,   494,   493,   366,   124,   124,   122,
     491,   773,   718,   204,   440,   562,   447,   325,   459,   325,
     654,   367,    98,   487,   108,   485,   368,   106,   141,   444,
     367,   456,    88,    97,   235,   762,    19,    46,    46,   221,
     474,   165,   476,   122,   367,   367,   546,   547,   721,   774,
     771,   562,   306,   761,   368,   718,   367,   682,   687,   368,
     692,   368,   420,   420,   420,   456,   221,   420,   534,   719,
     122,   367,   731,   368,   694,   719,   719,   718,   729,   718,
     717,   368,   248,   562,   459,   718,   524,   426,   771,   448,
     538,    19,   572,   760,   492,   368,   459,   183,   450,   143,
     764,   600,   264,   287,   488,   242,   456,    60,    84,   144,
      60,    84,   144,   759,   457,   265,   265,   108,   654,   221,
     221,   771,   519,   546,   718,   368,   372,   325,   519,   548,
     548,   760,   368,   761,   368,   457,   420,   719,   731,   368,
     760,   459,   572,    22,   139,   117,   123,   230,   282,   218,
     451,   452,   453,   299,    19,   768,   457,   368,   458,   762,
     368,   368,   562,   547,   519,   691,   368,   458,   368,   447,
      98,    88,   323,   218,   453,   218,   452,   762,   124,   220,
     291,   509,   510,   367,   458,   631,   562,   548,   458,    94,
      19,   450,   264,    38,   196,   257,   277,   454,   454,   770,
     770,   694,   372,   347,   349,   350,   352,   489,   490,   771,
     774,   458,   691,    12,   153,   589,   451,   108,     6,    83,
     209,   768,   570,   510,   368,   372,   691,   205,   367,   584,
     586,   591,   633,   638,   644,   654,   492,   242,   551,   247,
     367,   512,   490,   585,   586,   587,   655,   656,   768,   569,
     368,   371,   367,   368,   587,   489,   512,   368
};

#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# define YYSIZE_T __SIZE_TYPE__
#endif
#if ! defined (YYSIZE_T) && defined (size_t)
# define YYSIZE_T size_t
#endif
#if ! defined (YYSIZE_T)
# if defined (__STDC__) || defined (__cplusplus)
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
#  define YYSIZE_T size_t
# endif
#endif
#if ! defined (YYSIZE_T)
# define YYSIZE_T unsigned int
#endif

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		(-2)
#define YYEOF		0

#define YYACCEPT	goto yyacceptlab
#define YYABORT		goto yyabortlab
#define YYERROR		goto yyerrlab1

/* Like YYERROR except do call yyerror.  This remains here temporarily
   to ease the transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */

#define YYFAIL		goto yyerrlab

#define YYRECOVERING()  (!!yyerrstatus)

#define YYBACKUP(Token, Value)					\
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    {								\
      yychar = (Token);						\
      yylval = (Value);						\
      yytoken = YYTRANSLATE (yychar);				\
      YYPOPSTACK;						\
      goto yybackup;						\
    }								\
  else								\
    { 								\
      yyerror ("syntax error: cannot back up");\
      YYERROR;							\
    }								\
while (0)

#define YYTERROR	1
#define YYERRCODE	256

/* YYLLOC_DEFAULT -- Compute the default location (before the actions
   are run).  */

#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N)         \
  Current.first_line   = Rhs[1].first_line;      \
  Current.first_column = Rhs[1].first_column;    \
  Current.last_line    = Rhs[N].last_line;       \
  Current.last_column  = Rhs[N].last_column;
#endif

/* YYLEX -- calling `yylex' with the right arguments.  */

#ifdef YYLEX_PARAM
# define YYLEX yylex (YYLEX_PARAM)
#else
# define YYLEX yylex ()
#endif

/* Enable debugging if requested.  */
#if YYDEBUG

# ifndef YYFPRINTF
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
#  define YYFPRINTF fprintf
# endif

# define YYDPRINTF(Args)			\
do {						\
  if (yydebug)					\
    YYFPRINTF Args;				\
} while (0)

# define YYDSYMPRINT(Args)			\
do {						\
  if (yydebug)					\
    yysymprint Args;				\
} while (0)

# define YYDSYMPRINTF(Title, Token, Value, Location)		\
do {								\
  if (yydebug)							\
    {								\
      YYFPRINTF (stderr, "%s ", Title);				\
      yysymprint (stderr, 					\
                  Token, Value, Location);	\
      YYFPRINTF (stderr, "\n");					\
    }								\
} while (0)

/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (cinluded).                                                   |
`------------------------------------------------------------------*/

#if defined (__STDC__) || defined (__cplusplus)
static void
yy_stack_print (short *bottom, short *top)
#else
static void
yy_stack_print (bottom, top)
    short *bottom;
    short *top;
#endif
{
  YYFPRINTF (stderr, "Stack now");
  for (/* Nothing. */; bottom <= top; ++bottom)
    YYFPRINTF (stderr, " %d", *bottom);
  YYFPRINTF (stderr, "\n");
}

# define YY_STACK_PRINT(Bottom, Top)				\
do {								\
  if (yydebug)							\
    yy_stack_print ((Bottom), (Top));				\
} while (0)


/*------------------------------------------------.
| Report that the YYRULE is going to be reduced.  |
`------------------------------------------------*/

#if defined (__STDC__) || defined (__cplusplus)
static void
yy_reduce_print (int yyrule)
#else
static void
yy_reduce_print (yyrule)
    int yyrule;
#endif
{
  int yyi;
  unsigned int yylineno = yyrline[yyrule];
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
             yyrule - 1, yylineno);
  /* Print the symbols being reduced, and their result.  */
  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
}

# define YY_REDUCE_PRINT(Rule)		\
do {					\
  if (yydebug)				\
    yy_reduce_print (Rule);		\
} while (0)

/* Nonzero means print parse trace.  It is left uninitialized so that
   multiple parsers can coexist.  */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
# define YYDSYMPRINT(Args)
# define YYDSYMPRINTF(Title, Token, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */


/* YYINITDEPTH -- initial size of the parser's stacks.  */
#ifndef	YYINITDEPTH
# define YYINITDEPTH 200
#endif

/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   if the built-in stack extension method is used).

   Do not make this value too large; the results are undefined if
   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
   evaluated with infinite-precision integer arithmetic.  */

#if YYMAXDEPTH == 0
# undef YYMAXDEPTH
#endif

#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif



#if YYERROR_VERBOSE

# ifndef yystrlen
#  if defined (__GLIBC__) && defined (_STRING_H)
#   define yystrlen strlen
#  else
/* Return the length of YYSTR.  */
static YYSIZE_T
#   if defined (__STDC__) || defined (__cplusplus)
yystrlen (const char *yystr)
#   else
yystrlen (yystr)
     const char *yystr;
#   endif
{
  register const char *yys = yystr;

  while (*yys++ != '\0')
    continue;

  return yys - yystr - 1;
}
#  endif
# endif

# ifndef yystpcpy
#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
#   define yystpcpy stpcpy
#  else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
   YYDEST.  */
static char *
#   if defined (__STDC__) || defined (__cplusplus)
yystpcpy (char *yydest, const char *yysrc)
#   else
yystpcpy (yydest, yysrc)
     char *yydest;
     const char *yysrc;
#   endif
{
  register char *yyd = yydest;
  register const char *yys = yysrc;

  while ((*yyd++ = *yys++) != '\0')
    continue;

  return yyd - 1;
}
#  endif
# endif

#endif /* !YYERROR_VERBOSE */



#if YYDEBUG
/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

#if defined (__STDC__) || defined (__cplusplus)
static void
yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
#else
static void
yysymprint (yyoutput, yytype, yyvaluep, yylocationp)
    FILE *yyoutput;
    int yytype;
    YYSTYPE *yyvaluep;
    YYLTYPE *yylocationp;
#endif
{
  /* Pacify ``unused variable'' warnings.  */
  (void) yyvaluep;
  (void) yylocationp;

  if (yytype < YYNTOKENS)
    {
      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
# ifdef YYPRINT
      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# endif
    }
  else
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);

  switch (yytype)
    {
      default:
        break;
    }
  YYFPRINTF (yyoutput, ")");
}

#endif /* ! YYDEBUG */
/*-----------------------------------------------.
| Release the memory associated to this symbol.  |
`-----------------------------------------------*/

#if defined (__STDC__) || defined (__cplusplus)
static void
yydestruct (int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
#else
static void
yydestruct (yytype, yyvaluep, yylocationp)
    int yytype;
    YYSTYPE *yyvaluep;
    YYLTYPE *yylocationp;
#endif
{
  /* Pacify ``unused variable'' warnings.  */
  (void) yyvaluep;
  (void) yylocationp;

  switch (yytype)
    {

      default:
        break;
    }
}


/* Prevent warnings from -Wmissing-prototypes.  */

#ifdef YYPARSE_PARAM
# if defined (__STDC__) || defined (__cplusplus)
int yyparse (void *YYPARSE_PARAM);
# else
int yyparse ();
# endif
#else /* ! YYPARSE_PARAM */
#if defined (__STDC__) || defined (__cplusplus)
int yyparse (void);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */



/* The lookahead symbol.  */
int yychar;

/* The semantic value of the lookahead symbol.  */
YYSTYPE yylval;

/* Number of syntax errors so far.  */
int yynerrs;
/* Location data for the lookahead symbol.  */
YYLTYPE yylloc;



/*----------.
| yyparse.  |
`----------*/

#ifdef YYPARSE_PARAM
# if defined (__STDC__) || defined (__cplusplus)
int yyparse (void *YYPARSE_PARAM)
# else
int yyparse (YYPARSE_PARAM)
  void *YYPARSE_PARAM;
# endif
#else /* ! YYPARSE_PARAM */
#if defined (__STDC__) || defined (__cplusplus)
int
yyparse (void)
#else
int
yyparse ()

#endif
#endif
{
  
  register int yystate;
  register int yyn;
  int yyresult;
  /* Number of tokens to shift before error messages enabled.  */
  int yyerrstatus;
  /* Lookahead token as an internal (translated) token number.  */
  int yytoken = 0;

  /* Three stacks and their tools:
     `yyss': related to states,
     `yyvs': related to semantic values,
     `yyls': related to locations.

     Refer to the stacks thru separate pointers, to allow yyoverflow
     to reallocate them elsewhere.  */

  /* The state stack.  */
  short	yyssa[YYINITDEPTH];
  short *yyss = yyssa;
  register short *yyssp;

  /* The semantic value stack.  */
  YYSTYPE yyvsa[YYINITDEPTH];
  YYSTYPE *yyvs = yyvsa;
  register YYSTYPE *yyvsp;

  /* The location stack.  */
  YYLTYPE yylsa[YYINITDEPTH];
  YYLTYPE *yyls = yylsa;
  YYLTYPE *yylsp;
  YYLTYPE *yylerrsp;

#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)

  YYSIZE_T yystacksize = YYINITDEPTH;

  /* The variables used to return semantic value and location from the
     action routines.  */
  YYSTYPE yyval;
  YYLTYPE yyloc;

  /* When reducing, the number of symbols on the RHS of the reduced
     rule.  */
  int yylen;

  YYDPRINTF ((stderr, "Starting parse\n"));

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY;		/* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */

  yyssp = yyss;
  yyvsp = yyvs;
  yylsp = yyls;
  goto yysetstate;

/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate.  |
`------------------------------------------------------------*/
 yynewstate:
  /* In all cases, when you get here, the value and location stacks
     have just been pushed. so pushing a state here evens the stacks.
     */
  yyssp++;

 yysetstate:
  *yyssp = yystate;

  if (yyss + yystacksize - 1 <= yyssp)
    {
      /* Get the current used size of the three stacks, in elements.  */
      YYSIZE_T yysize = yyssp - yyss + 1;

#ifdef yyoverflow
      {
	/* Give user a chance to reallocate the stack. Use copies of
	   these so that the &'s don't force the real ones into
	   memory.  */
	YYSTYPE *yyvs1 = yyvs;
	short *yyss1 = yyss;
	YYLTYPE *yyls1 = yyls;

	/* Each stack pointer address is followed by the size of the
	   data in use in that stack, in bytes.  This used to be a
	   conditional around just the two extra args, but that might
	   be undefined if yyoverflow is a macro.  */
	yyoverflow ("parser stack overflow",
		    &yyss1, yysize * sizeof (*yyssp),
		    &yyvs1, yysize * sizeof (*yyvsp),
		    &yyls1, yysize * sizeof (*yylsp),
		    &yystacksize);
	yyls = yyls1;
	yyss = yyss1;
	yyvs = yyvs1;
      }
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
      goto yyoverflowlab;
# else
      /* Extend the stack our own way.  */
      if (YYMAXDEPTH <= yystacksize)
	goto yyoverflowlab;
      yystacksize *= 2;
      if (YYMAXDEPTH < yystacksize)
	yystacksize = YYMAXDEPTH;

      {
	short *yyss1 = yyss;
	union yyalloc *yyptr =
	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
	if (! yyptr)
	  goto yyoverflowlab;
	YYSTACK_RELOCATE (yyss);
	YYSTACK_RELOCATE (yyvs);
	YYSTACK_RELOCATE (yyls);
#  undef YYSTACK_RELOCATE
	if (yyss1 != yyssa)
	  YYSTACK_FREE (yyss1);
      }
# endif
#endif /* no yyoverflow */

      yyssp = yyss + yysize - 1;
      yyvsp = yyvs + yysize - 1;
      yylsp = yyls + yysize - 1;

      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
		  (unsigned long int) yystacksize));

      if (yyss + yystacksize - 1 <= yyssp)
	YYABORT;
    }

  YYDPRINTF ((stderr, "Entering state %d\n", yystate));

  goto yybackup;

/*-----------.
| yybackup.  |
`-----------*/
yybackup:

/* Do appropriate processing given the current state.  */
/* Read a lookahead token if we need one and don't already have one.  */
/* yyresume: */

  /* First try to decide what to do without reference to lookahead token.  */

  yyn = yypact[yystate];
  if (yyn == YYPACT_NINF)
    goto yydefault;

  /* Not known => get a lookahead token if don't already have one.  */

  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
  if (yychar == YYEMPTY)
    {
      YYDPRINTF ((stderr, "Reading a token: "));
      yychar = YYLEX;
    }

  if (yychar <= YYEOF)
    {
      yychar = yytoken = YYEOF;
      YYDPRINTF ((stderr, "Now at end of input.\n"));
    }
  else
    {
      yytoken = YYTRANSLATE (yychar);
      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
    }

  /* If the proper action on seeing token YYTOKEN is to reduce or to
     detect an error, take that action.  */
  yyn += yytoken;
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
    goto yydefault;
  yyn = yytable[yyn];
  if (yyn <= 0)
    {
      if (yyn == 0 || yyn == YYTABLE_NINF)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }

  if (yyn == YYFINAL)
    YYACCEPT;

  /* Shift the lookahead token.  */
  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));

  /* Discard the token being shifted unless it is eof.  */
  if (yychar != YYEOF)
    yychar = YYEMPTY;

  *++yyvsp = yylval;
  *++yylsp = yylloc;

  /* Count tokens shifted since error; after three, turn off error
     status.  */
  if (yyerrstatus)
    yyerrstatus--;

  yystate = yyn;
  goto yynewstate;


/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state.  |
`-----------------------------------------------------------*/
yydefault:
  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;
  goto yyreduce;


/*-----------------------------.
| yyreduce -- Do a reduction.  |
`-----------------------------*/
yyreduce:
  /* yyn is the number of a rule to reduce with.  */
  yylen = yyr2[yyn];

  /* If YYLEN is nonzero, implement the default value of the action:
     `$$ = $1'.

     Otherwise, the following line sets YYVAL to garbage.
     This behavior is undocumented and Bison
     users should not rely upon it.  Assigning to YYVAL
     unconditionally makes the parser a bit smaller, and it avoids a
     GCC warning that YYVAL may be used uninitialized.  */
  yyval = yyvsp[1-yylen];

  /* Default location. */
  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
  YY_REDUCE_PRINT (yyn);
  switch (yyn)
    {
        case 2:
#line 494 "gram.y"
    { parsetree = yyvsp[0].list; }
    break;

  case 3:
#line 499 "gram.y"
    { if (yyvsp[0].node != NULL)
					yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
				  else
					yyval.list = yyvsp[-2].list;
				}
    break;

  case 4:
#line 505 "gram.y"
    { if (yyvsp[0].node != NULL)
						yyval.list = list_make1(yyvsp[0].node);
					  else
						yyval.list = NIL;
					}
    break;

  case 90:
#line 599 "gram.y"
    { yyval.node = NULL; }
    break;

  case 91:
#line 610 "gram.y"
    {
					CreateRoleStmt *n = makeNode(CreateRoleStmt);
					n->stmt_type = ROLESTMT_ROLE;
					n->role = yyvsp[-2].str;
					n->options = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 92:
#line 620 "gram.y"
    {}
    break;

  case 93:
#line 621 "gram.y"
    {}
    break;

  case 94:
#line 630 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
    break;

  case 95:
#line 631 "gram.y"
    { yyval.list = NIL; }
    break;

  case 96:
#line 636 "gram.y"
    {
					yyval.defelt = makeDefElem("password",
									 (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 97:
#line 641 "gram.y"
    {
					yyval.defelt = makeDefElem("password", NULL);
				}
    break;

  case 98:
#line 645 "gram.y"
    {
					yyval.defelt = makeDefElem("encryptedPassword",
									 (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 99:
#line 650 "gram.y"
    {
					yyval.defelt = makeDefElem("unencryptedPassword",
									 (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 100:
#line 655 "gram.y"
    {
					yyval.defelt = makeDefElem("superuser", (Node *)makeInteger(TRUE));
				}
    break;

  case 101:
#line 659 "gram.y"
    {
					yyval.defelt = makeDefElem("superuser", (Node *)makeInteger(FALSE));
				}
    break;

  case 102:
#line 663 "gram.y"
    {
					yyval.defelt = makeDefElem("inherit", (Node *)makeInteger(TRUE));
				}
    break;

  case 103:
#line 667 "gram.y"
    {
					yyval.defelt = makeDefElem("inherit", (Node *)makeInteger(FALSE));
				}
    break;

  case 104:
#line 671 "gram.y"
    {
					yyval.defelt = makeDefElem("createdb", (Node *)makeInteger(TRUE));
				}
    break;

  case 105:
#line 675 "gram.y"
    {
					yyval.defelt = makeDefElem("createdb", (Node *)makeInteger(FALSE));
				}
    break;

  case 106:
#line 679 "gram.y"
    {
					yyval.defelt = makeDefElem("createrole", (Node *)makeInteger(TRUE));
				}
    break;

  case 107:
#line 683 "gram.y"
    {
					yyval.defelt = makeDefElem("createrole", (Node *)makeInteger(FALSE));
				}
    break;

  case 108:
#line 687 "gram.y"
    {
					/* For backwards compatibility, synonym for SUPERUSER */
					yyval.defelt = makeDefElem("superuser", (Node *)makeInteger(TRUE));
				}
    break;

  case 109:
#line 692 "gram.y"
    {
					yyval.defelt = makeDefElem("superuser", (Node *)makeInteger(FALSE));
				}
    break;

  case 110:
#line 696 "gram.y"
    {
					yyval.defelt = makeDefElem("canlogin", (Node *)makeInteger(TRUE));
				}
    break;

  case 111:
#line 700 "gram.y"
    {
					yyval.defelt = makeDefElem("canlogin", (Node *)makeInteger(FALSE));
				}
    break;

  case 112:
#line 704 "gram.y"
    {
					yyval.defelt = makeDefElem("connectionlimit", (Node *)makeInteger(yyvsp[0].ival));
				}
    break;

  case 113:
#line 708 "gram.y"
    {
					yyval.defelt = makeDefElem("validUntil", (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 114:
#line 713 "gram.y"
    {
					yyval.defelt = makeDefElem("rolemembers", (Node *)yyvsp[0].list);
				}
    break;

  case 115:
#line 718 "gram.y"
    {
					yyval.defelt = makeDefElem("sysid", (Node *)makeInteger(yyvsp[0].ival));
				}
    break;

  case 116:
#line 722 "gram.y"
    {
					yyval.defelt = makeDefElem("adminmembers", (Node *)yyvsp[0].list);
				}
    break;

  case 117:
#line 726 "gram.y"
    {
					yyval.defelt = makeDefElem("rolemembers", (Node *)yyvsp[0].list);
				}
    break;

  case 118:
#line 730 "gram.y"
    {
					yyval.defelt = makeDefElem("addroleto", (Node *)yyvsp[0].list);
				}
    break;

  case 119:
#line 734 "gram.y"
    {
					yyval.defelt = makeDefElem("addroleto", (Node *)yyvsp[0].list);
				}
    break;

  case 120:
#line 748 "gram.y"
    {
					CreateRoleStmt *n = makeNode(CreateRoleStmt);
					n->stmt_type = ROLESTMT_USER;
					n->role = yyvsp[-2].str;
					n->options = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 121:
#line 766 "gram.y"
    {
					AlterRoleStmt *n = makeNode(AlterRoleStmt);
					n->role = yyvsp[-2].str;
					n->action = +1;	/* add, if there are members */
					n->options = yyvsp[0].list;
					yyval.node = (Node *)n;
				 }
    break;

  case 122:
#line 777 "gram.y"
    {
					AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
					n->role = yyvsp[-2].str;
					n->variable = yyvsp[0].vsetstmt->name;
					n->value = yyvsp[0].vsetstmt->args;
					yyval.node = (Node *)n;
				}
    break;

  case 123:
#line 785 "gram.y"
    {
					AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
					n->role = yyvsp[-1].str;
					n->variable = ((VariableResetStmt *)yyvsp[0].node)->name;
					n->value = NIL;
					yyval.node = (Node *)n;
				}
    break;

  case 124:
#line 803 "gram.y"
    {
					AlterRoleStmt *n = makeNode(AlterRoleStmt);
					n->role = yyvsp[-2].str;
					n->action = +1;	/* add, if there are members */
					n->options = yyvsp[0].list;
					yyval.node = (Node *)n;
				 }
    break;

  case 125:
#line 815 "gram.y"
    {
					AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
					n->role = yyvsp[-2].str;
					n->variable = yyvsp[0].vsetstmt->name;
					n->value = yyvsp[0].vsetstmt->args;
					yyval.node = (Node *)n;
				}
    break;

  case 126:
#line 823 "gram.y"
    {
					AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
					n->role = yyvsp[-1].str;
					n->variable = ((VariableResetStmt *)yyvsp[0].node)->name;
					n->value = NIL;
					yyval.node = (Node *)n;
				}
    break;

  case 127:
#line 844 "gram.y"
    {
					DropRoleStmt *n = makeNode(DropRoleStmt);
					n->missing_ok = FALSE;
					n->roles = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 128:
#line 851 "gram.y"
    {
					DropRoleStmt *n = makeNode(DropRoleStmt);
					n->missing_ok = TRUE;
					n->roles = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 129:
#line 870 "gram.y"
    {
					DropRoleStmt *n = makeNode(DropRoleStmt);
					n->missing_ok = FALSE;
					n->roles = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 130:
#line 877 "gram.y"
    {
					DropRoleStmt *n = makeNode(DropRoleStmt);
					n->roles = yyvsp[0].list;
					n->missing_ok = TRUE;
					yyval.node = (Node *)n;
				}
    break;

  case 131:
#line 894 "gram.y"
    {
					CreateRoleStmt *n = makeNode(CreateRoleStmt);
					n->stmt_type = ROLESTMT_GROUP;
					n->role = yyvsp[-2].str;
					n->options = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 132:
#line 912 "gram.y"
    {
					AlterRoleStmt *n = makeNode(AlterRoleStmt);
					n->role = yyvsp[-3].str;
					n->action = yyvsp[-2].ival;
					n->options = list_make1(makeDefElem("rolemembers",
														(Node *)yyvsp[0].list));
					yyval.node = (Node *)n;
				}
    break;

  case 133:
#line 922 "gram.y"
    { yyval.ival = +1; }
    break;

  case 134:
#line 923 "gram.y"
    { yyval.ival = -1; }
    break;

  case 135:
#line 936 "gram.y"
    {
					DropRoleStmt *n = makeNode(DropRoleStmt);
					n->missing_ok = FALSE;
					n->roles = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 136:
#line 943 "gram.y"
    {
					DropRoleStmt *n = makeNode(DropRoleStmt);
					n->missing_ok = TRUE;
					n->roles = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 137:
#line 960 "gram.y"
    {
					CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
					/* One can omit the schema name or the authorization id. */
					if (yyvsp[-3].str != NULL)
						n->schemaname = yyvsp[-3].str;
					else
						n->schemaname = yyvsp[-1].str;
					n->authid = yyvsp[-1].str;
					n->schemaElts = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 138:
#line 972 "gram.y"
    {
					CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
					/* ...but not both */
					n->schemaname = yyvsp[-1].str;
					n->authid = NULL;
					n->schemaElts = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 139:
#line 983 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 140:
#line 984 "gram.y"
    { yyval.str = NULL; }
    break;

  case 141:
#line 988 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); }
    break;

  case 142:
#line 989 "gram.y"
    { yyval.list = NIL; }
    break;

  case 149:
#line 1017 "gram.y"
    {
					VariableSetStmt *n = yyvsp[0].vsetstmt;
					n->is_local = false;
					yyval.node = (Node *) n;
				}
    break;

  case 150:
#line 1023 "gram.y"
    {
					VariableSetStmt *n = yyvsp[0].vsetstmt;
					n->is_local = true;
					yyval.node = (Node *) n;
				}
    break;

  case 151:
#line 1029 "gram.y"
    {
					VariableSetStmt *n = yyvsp[0].vsetstmt;
					n->is_local = false;
					yyval.node = (Node *) n;
				}
    break;

  case 152:
#line 1037 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->name = yyvsp[-2].str;
					n->args = yyvsp[0].list;
					yyval.vsetstmt = n;
				}
    break;

  case 153:
#line 1044 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->name = yyvsp[-2].str;
					n->args = yyvsp[0].list;
					yyval.vsetstmt = n;
				}
    break;

  case 154:
#line 1051 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->name = "timezone";
					if (yyvsp[0].node != NULL)
						n->args = list_make1(yyvsp[0].node);
					yyval.vsetstmt = n;
				}
    break;

  case 155:
#line 1059 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->name = "TRANSACTION";
					n->args = yyvsp[0].list;
					yyval.vsetstmt = n;
				}
    break;

  case 156:
#line 1066 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->name = "SESSION CHARACTERISTICS";
					n->args = yyvsp[0].list;
					yyval.vsetstmt = n;
				}
    break;

  case 157:
#line 1073 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->name = "client_encoding";
					if (yyvsp[0].str != NULL)
						n->args = list_make1(makeStringConst(yyvsp[0].str, NULL));
					yyval.vsetstmt = n;
				}
    break;

  case 158:
#line 1081 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->name = "role";
					n->args = list_make1(makeStringConst(yyvsp[0].str, NULL));
					yyval.vsetstmt = n;
				}
    break;

  case 159:
#line 1088 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->name = "session_authorization";
					n->args = list_make1(makeStringConst(yyvsp[0].str, NULL));
					yyval.vsetstmt = n;
				}
    break;

  case 160:
#line 1095 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->name = "session_authorization";
					n->args = NIL;
					yyval.vsetstmt = n;
				}
    break;

  case 161:
#line 1104 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 162:
#line 1106 "gram.y"
    {
					int qLen = strlen(yyvsp[-2].str);
					char* qualName = palloc(qLen + strlen(yyvsp[0].str) + 2);
					strcpy(qualName, yyvsp[-2].str);
					qualName[qLen] = '.';
					strcpy(qualName + qLen + 1, yyvsp[0].str);
					yyval.str = qualName;
				}
    break;

  case 163:
#line 1117 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 164:
#line 1118 "gram.y"
    { yyval.list = NIL; }
    break;

  case 165:
#line 1121 "gram.y"
    { yyval.list = list_make1(yyvsp[0].node); }
    break;

  case 166:
#line 1122 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
    break;

  case 167:
#line 1126 "gram.y"
    { yyval.node = makeStringConst(yyvsp[0].str, NULL); }
    break;

  case 168:
#line 1128 "gram.y"
    { yyval.node = makeStringConst(yyvsp[0].str, NULL); }
    break;

  case 169:
#line 1130 "gram.y"
    { yyval.node = makeAConst(yyvsp[0].value); }
    break;

  case 170:
#line 1133 "gram.y"
    { yyval.str = "read uncommitted"; }
    break;

  case 171:
#line 1134 "gram.y"
    { yyval.str = "read committed"; }
    break;

  case 172:
#line 1135 "gram.y"
    { yyval.str = "repeatable read"; }
    break;

  case 173:
#line 1136 "gram.y"
    { yyval.str = "serializable"; }
    break;

  case 174:
#line 1140 "gram.y"
    { yyval.str = "true"; }
    break;

  case 175:
#line 1141 "gram.y"
    { yyval.str = "false"; }
    break;

  case 176:
#line 1142 "gram.y"
    { yyval.str = "on"; }
    break;

  case 177:
#line 1143 "gram.y"
    { yyval.str = "off"; }
    break;

  case 178:
#line 1156 "gram.y"
    {
					yyval.node = makeStringConst(yyvsp[0].str, NULL);
				}
    break;

  case 179:
#line 1160 "gram.y"
    {
					yyval.node = makeStringConst(yyvsp[0].str, NULL);
				}
    break;

  case 180:
#line 1164 "gram.y"
    {
					A_Const *n = (A_Const *) makeStringConst(yyvsp[-1].str, yyvsp[-2].typnam);
					if (yyvsp[0].ival != INTERVAL_FULL_RANGE)
					{
						if ((yyvsp[0].ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0)
							ereport(ERROR,
									(errcode(ERRCODE_SYNTAX_ERROR),
									 errmsg("time zone interval must be HOUR or HOUR TO MINUTE")));
						n->typename->typmod = INTERVAL_TYPMOD(INTERVAL_FULL_PRECISION, yyvsp[0].ival);
					}
					yyval.node = (Node *)n;
				}
    break;

  case 181:
#line 1177 "gram.y"
    {
					A_Const *n = (A_Const *) makeStringConst(yyvsp[-1].str, yyvsp[-5].typnam);
					if (yyvsp[-3].ival < 0)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("INTERVAL(%d) precision must not be negative",
										yyvsp[-3].ival)));
					if (yyvsp[-3].ival > MAX_INTERVAL_PRECISION)
					{
						ereport(WARNING,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("INTERVAL(%d) precision reduced to maximum allowed, %d",
										yyvsp[-3].ival, MAX_INTERVAL_PRECISION)));
						yyvsp[-3].ival = MAX_INTERVAL_PRECISION;
					}

					if ((yyvsp[0].ival != INTERVAL_FULL_RANGE)
						&& ((yyvsp[0].ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0))
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("time zone interval must be HOUR or HOUR TO MINUTE")));

					n->typename->typmod = INTERVAL_TYPMOD(yyvsp[-3].ival, yyvsp[0].ival);

					yyval.node = (Node *)n;
				}
    break;

  case 182:
#line 1203 "gram.y"
    { yyval.node = makeAConst(yyvsp[0].value); }
    break;

  case 183:
#line 1204 "gram.y"
    { yyval.node = NULL; }
    break;

  case 184:
#line 1205 "gram.y"
    { yyval.node = NULL; }
    break;

  case 185:
#line 1209 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 186:
#line 1210 "gram.y"
    { yyval.str = NULL; }
    break;

  case 187:
#line 1211 "gram.y"
    { yyval.str = NULL; }
    break;

  case 188:
#line 1215 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 189:
#line 1216 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 190:
#line 1222 "gram.y"
    {
					VariableShowStmt *n = makeNode(VariableShowStmt);
					n->name = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 191:
#line 1228 "gram.y"
    {
					VariableShowStmt *n = makeNode(VariableShowStmt);
					n->name = "timezone";
					yyval.node = (Node *) n;
				}
    break;

  case 192:
#line 1234 "gram.y"
    {
					VariableShowStmt *n = makeNode(VariableShowStmt);
					n->name = "transaction_isolation";
					yyval.node = (Node *) n;
				}
    break;

  case 193:
#line 1240 "gram.y"
    {
					VariableShowStmt *n = makeNode(VariableShowStmt);
					n->name = "session_authorization";
					yyval.node = (Node *) n;
				}
    break;

  case 194:
#line 1246 "gram.y"
    {
					VariableShowStmt *n = makeNode(VariableShowStmt);
					n->name = "all";
					yyval.node = (Node *) n;
				}
    break;

  case 195:
#line 1255 "gram.y"
    {
					VariableResetStmt *n = makeNode(VariableResetStmt);
					n->name = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 196:
#line 1261 "gram.y"
    {
					VariableResetStmt *n = makeNode(VariableResetStmt);
					n->name = "timezone";
					yyval.node = (Node *) n;
				}
    break;

  case 197:
#line 1267 "gram.y"
    {
					VariableResetStmt *n = makeNode(VariableResetStmt);
					n->name = "transaction_isolation";
					yyval.node = (Node *) n;
				}
    break;

  case 198:
#line 1273 "gram.y"
    {
					VariableResetStmt *n = makeNode(VariableResetStmt);
					n->name = "session_authorization";
					yyval.node = (Node *) n;
				}
    break;

  case 199:
#line 1279 "gram.y"
    {
					VariableResetStmt *n = makeNode(VariableResetStmt);
					n->name = "all";
					yyval.node = (Node *) n;
				}
    break;

  case 200:
#line 1289 "gram.y"
    {
					ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt);
					n->constraints = yyvsp[-1].list;
					n->deferred    = yyvsp[0].boolean;
					yyval.node = (Node *) n;
				}
    break;

  case 201:
#line 1298 "gram.y"
    { yyval.list = NIL; }
    break;

  case 202:
#line 1299 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 203:
#line 1303 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 204:
#line 1304 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 205:
#line 1313 "gram.y"
    {
					CheckPointStmt *n = makeNode(CheckPointStmt);
					yyval.node = (Node *)n;
				}
    break;

  case 206:
#line 1328 "gram.y"
    {
					AlterTableStmt *n = makeNode(AlterTableStmt);
					n->relation = yyvsp[-1].range;
					n->cmds = yyvsp[0].list;
					n->relkind = OBJECT_TABLE;
					yyval.node = (Node *)n;
				}
    break;

  case 207:
#line 1336 "gram.y"
    {
					AlterTableStmt *n = makeNode(AlterTableStmt);
					n->relation = yyvsp[-1].range;
					n->cmds = yyvsp[0].list;
					n->relkind = OBJECT_INDEX;
					yyval.node = (Node *)n;
				}
    break;

  case 208:
#line 1346 "gram.y"
    { yyval.list = list_make1(yyvsp[0].node); }
    break;

  case 209:
#line 1347 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
    break;

  case 210:
#line 1354 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_AddColumn;
					n->def = yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 211:
#line 1362 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_ColumnDefault;
					n->name = yyvsp[-1].str;
					n->def = yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 212:
#line 1371 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropNotNull;
					n->name = yyvsp[-3].str;
					yyval.node = (Node *)n;
				}
    break;

  case 213:
#line 1379 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_SetNotNull;
					n->name = yyvsp[-3].str;
					yyval.node = (Node *)n;
				}
    break;

  case 214:
#line 1387 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_SetStatistics;
					n->name = yyvsp[-3].str;
					n->def = (Node *) yyvsp[0].value;
					yyval.node = (Node *)n;
				}
    break;

  case 215:
#line 1396 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_SetStorage;
					n->name = yyvsp[-3].str;
					n->def = (Node *) makeString(yyvsp[0].str);
					yyval.node = (Node *)n;
				}
    break;

  case 216:
#line 1405 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropColumn;
					n->name = yyvsp[-1].str;
					n->behavior = yyvsp[0].dbehavior;
					yyval.node = (Node *)n;
				}
    break;

  case 217:
#line 1417 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_AlterColumnType;
					n->name = yyvsp[-3].str;
					n->def = (Node *) yyvsp[-1].typnam;
					n->transform = yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 218:
#line 1427 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_AddConstraint;
					n->def = yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 219:
#line 1435 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropConstraint;
					n->name = yyvsp[-1].str;
					n->behavior = yyvsp[0].dbehavior;
					yyval.node = (Node *)n;
				}
    break;

  case 220:
#line 1444 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropOids;
					yyval.node = (Node *)n;
				}
    break;

  case 221:
#line 1451 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_ClusterOn;
					n->name = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 222:
#line 1459 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropCluster;
					n->name = NULL;
					yyval.node = (Node *)n;
				}
    break;

  case 223:
#line 1467 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_EnableTrig;
					n->name = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 224:
#line 1475 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_EnableTrigAll;
					yyval.node = (Node *)n;
				}
    break;

  case 225:
#line 1482 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_EnableTrigUser;
					yyval.node = (Node *)n;
				}
    break;

  case 226:
#line 1489 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DisableTrig;
					n->name = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 227:
#line 1497 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DisableTrigAll;
					yyval.node = (Node *)n;
				}
    break;

  case 228:
#line 1504 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DisableTrigUser;
					yyval.node = (Node *)n;
				}
    break;

  case 229:
#line 1511 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_AddInherit;
					n->def = (Node *) yyvsp[0].range;
					yyval.node = (Node *)n;
				}
    break;

  case 230:
#line 1519 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropInherit;
					n->def = (Node *) yyvsp[0].range;
					yyval.node = (Node *)n;
				}
    break;

  case 231:
#line 1526 "gram.y"
    {
					yyval.node = yyvsp[0].node;
				}
    break;

  case 232:
#line 1532 "gram.y"
    { yyval.list = list_make1(yyvsp[0].node); }
    break;

  case 233:
#line 1533 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
    break;

  case 234:
#line 1540 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_ChangeOwner;
					n->name = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 235:
#line 1548 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_SetTableSpace;
					n->name = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 236:
#line 1556 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_SetRelOptions;
					n->def = (Node *)yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 237:
#line 1564 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_ResetRelOptions;
					n->def = (Node *)yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 238:
#line 1574 "gram.y"
    {
					/* Treat SET DEFAULT NULL the same as DROP DEFAULT */
					if (exprIsNullConstant(yyvsp[0].node))
						yyval.node = NULL;
					else
						yyval.node = yyvsp[0].node;
				}
    break;

  case 239:
#line 1581 "gram.y"
    { yyval.node = NULL; }
    break;

  case 240:
#line 1585 "gram.y"
    { yyval.dbehavior = DROP_CASCADE; }
    break;

  case 241:
#line 1586 "gram.y"
    { yyval.dbehavior = DROP_RESTRICT; }
    break;

  case 242:
#line 1587 "gram.y"
    { yyval.dbehavior = DROP_RESTRICT; /* default */ }
    break;

  case 243:
#line 1591 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 244:
#line 1592 "gram.y"
    { yyval.node = NULL; }
    break;

  case 245:
#line 1606 "gram.y"
    {
					ClosePortalStmt *n = makeNode(ClosePortalStmt);
					n->portalname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 246:
#line 1630 "gram.y"
    {
					CopyStmt *n = makeNode(CopyStmt);
					n->relation = yyvsp[-7].range;
					n->query = NULL;
					n->attlist = yyvsp[-6].list;
					n->is_from = yyvsp[-4].boolean;
					n->filename = yyvsp[-3].str;

					n->options = NIL;
					/* Concatenate user-supplied flags */
					if (yyvsp[-8].defelt)
						n->options = lappend(n->options, yyvsp[-8].defelt);
					if (yyvsp[-5].defelt)
						n->options = lappend(n->options, yyvsp[-5].defelt);
					if (yyvsp[-2].defelt)
						n->options = lappend(n->options, yyvsp[-2].defelt);
					if (yyvsp[0].list)
						n->options = list_concat(n->options, yyvsp[0].list);
					yyval.node = (Node *)n;
				}
    break;

  case 247:
#line 1652 "gram.y"
    {
					CopyStmt *n = makeNode(CopyStmt);
					n->relation = NULL;
					n->query = (Query *) yyvsp[-4].node;
					n->attlist = NIL;
					n->is_from = false;
					n->filename = yyvsp[-2].str;
					n->options = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 248:
#line 1665 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 249:
#line 1666 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 250:
#line 1675 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 251:
#line 1676 "gram.y"
    { yyval.str = NULL; }
    break;

  case 252:
#line 1677 "gram.y"
    { yyval.str = NULL; }
    break;

  case 253:
#line 1683 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
    break;

  case 254:
#line 1684 "gram.y"
    { yyval.list = NIL; }
    break;

  case 255:
#line 1690 "gram.y"
    {
					yyval.defelt = makeDefElem("binary", (Node *)makeInteger(TRUE));
				}
    break;

  case 256:
#line 1694 "gram.y"
    {
					yyval.defelt = makeDefElem("oids", (Node *)makeInteger(TRUE));
				}
    break;

  case 257:
#line 1698 "gram.y"
    {
					yyval.defelt = makeDefElem("delimiter", (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 258:
#line 1702 "gram.y"
    {
					yyval.defelt = makeDefElem("null", (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 259:
#line 1706 "gram.y"
    {
					yyval.defelt = makeDefElem("csv", (Node *)makeInteger(TRUE));
				}
    break;

  case 260:
#line 1710 "gram.y"
    {
					yyval.defelt = makeDefElem("header", (Node *)makeInteger(TRUE));
				}
    break;

  case 261:
#line 1714 "gram.y"
    {
					yyval.defelt = makeDefElem("quote", (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 262:
#line 1718 "gram.y"
    {
					yyval.defelt = makeDefElem("escape", (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 263:
#line 1722 "gram.y"
    {
					yyval.defelt = makeDefElem("force_quote", (Node *)yyvsp[0].list);
				}
    break;

  case 264:
#line 1726 "gram.y"
    {
					yyval.defelt = makeDefElem("force_notnull", (Node *)yyvsp[0].list);
				}
    break;

  case 265:
#line 1735 "gram.y"
    {
					yyval.defelt = makeDefElem("binary", (Node *)makeInteger(TRUE));
				}
    break;

  case 266:
#line 1738 "gram.y"
    { yyval.defelt = NULL; }
    break;

  case 267:
#line 1743 "gram.y"
    {
					yyval.defelt = makeDefElem("oids", (Node *)makeInteger(TRUE));
				}
    break;

  case 268:
#line 1746 "gram.y"
    { yyval.defelt = NULL; }
    break;

  case 269:
#line 1752 "gram.y"
    {
					yyval.defelt = makeDefElem("delimiter", (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 270:
#line 1755 "gram.y"
    { yyval.defelt = NULL; }
    break;

  case 271:
#line 1759 "gram.y"
    {}
    break;

  case 272:
#line 1760 "gram.y"
    {}
    break;

  case 273:
#line 1773 "gram.y"
    {
					CreateStmt *n = makeNode(CreateStmt);
					yyvsp[-7].range->istemp = yyvsp[-9].boolean;
					n->relation = yyvsp[-7].range;
					n->tableElts = yyvsp[-5].list;
					n->inhRelations = yyvsp[-3].list;
					n->constraints = NIL;
					n->options = yyvsp[-2].list;
					n->oncommit = yyvsp[-1].oncommit;
					n->tablespacename = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 274:
#line 1787 "gram.y"
    {
					/* SQL99 CREATE TABLE OF <UDT> (cols) seems to be satisfied
					 * by our inheritance capabilities. Let's try it...
					 */
					CreateStmt *n = makeNode(CreateStmt);
					yyvsp[-8].range->istemp = yyvsp[-10].boolean;
					n->relation = yyvsp[-8].range;
					n->tableElts = yyvsp[-4].list;
					n->inhRelations = list_make1(yyvsp[-6].range);
					n->constraints = NIL;
					n->options = yyvsp[-2].list;
					n->oncommit = yyvsp[-1].oncommit;
					n->tablespacename = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 275:
#line 1811 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 276:
#line 1812 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 277:
#line 1813 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 278:
#line 1814 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 279:
#line 1815 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 280:
#line 1816 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 281:
#line 1817 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 282:
#line 1821 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 283:
#line 1822 "gram.y"
    { yyval.list = NIL; }
    break;

  case 284:
#line 1827 "gram.y"
    {
					yyval.list = list_make1(yyvsp[0].node);
				}
    break;

  case 285:
#line 1831 "gram.y"
    {
					yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
				}
    break;

  case 286:
#line 1837 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 287:
#line 1838 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 288:
#line 1839 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 289:
#line 1843 "gram.y"
    {
					ColumnDef *n = makeNode(ColumnDef);
					n->colname = yyvsp[-2].str;
					n->typename = yyvsp[-1].typnam;
					n->constraints = yyvsp[0].list;
					n->is_local = true;
					yyval.node = (Node *)n;
				}
    break;

  case 290:
#line 1854 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); }
    break;

  case 291:
#line 1855 "gram.y"
    { yyval.list = NIL; }
    break;

  case 292:
#line 1860 "gram.y"
    {
					switch (nodeTag(yyvsp[0].node))
					{
						case T_Constraint:
							{
								Constraint *n = (Constraint *)yyvsp[0].node;
								n->name = yyvsp[-1].str;
							}
							break;
						case T_FkConstraint:
							{
								FkConstraint *n = (FkConstraint *)yyvsp[0].node;
								n->constr_name = yyvsp[-1].str;
							}
							break;
						default:
							break;
					}
					yyval.node = yyvsp[0].node;
				}
    break;

  case 293:
#line 1880 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 294:
#line 1881 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 295:
#line 1901 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_NOTNULL;
					n->name = NULL;
					n->raw_expr = NULL;
					n->cooked_expr = NULL;
					n->keys = NULL;
					n->indexspace = NULL;
					yyval.node = (Node *)n;
				}
    break;

  case 296:
#line 1912 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_NULL;
					n->name = NULL;
					n->raw_expr = NULL;
					n->cooked_expr = NULL;
					n->keys = NULL;
					n->indexspace = NULL;
					yyval.node = (Node *)n;
				}
    break;

  case 297:
#line 1923 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_UNIQUE;
					n->name = NULL;
					n->raw_expr = NULL;
					n->cooked_expr = NULL;
					n->keys = NULL;
					n->options = yyvsp[-1].list;
					n->indexspace = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 298:
#line 1935 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_PRIMARY;
					n->name = NULL;
					n->raw_expr = NULL;
					n->cooked_expr = NULL;
					n->keys = NULL;
					n->options = yyvsp[-1].list;
					n->indexspace = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 299:
#line 1947 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_CHECK;
					n->name = NULL;
					n->raw_expr = yyvsp[-1].node;
					n->cooked_expr = NULL;
					n->keys = NULL;
					n->indexspace = NULL;
					yyval.node = (Node *)n;
				}
    break;

  case 300:
#line 1958 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_DEFAULT;
					n->name = NULL;
					if (exprIsNullConstant(yyvsp[0].node))
					{
						/* DEFAULT NULL should be reported as empty expr */
						n->raw_expr = NULL;
					}
					else
					{
						n->raw_expr = yyvsp[0].node;
					}
					n->cooked_expr = NULL;
					n->keys = NULL;
					n->indexspace = NULL;
					yyval.node = (Node *)n;
				}
    break;

  case 301:
#line 1977 "gram.y"
    {
					FkConstraint *n = makeNode(FkConstraint);
					n->constr_name		= NULL;
					n->pktable			= yyvsp[-3].range;
					n->fk_attrs			= NIL;
					n->pk_attrs			= yyvsp[-2].list;
					n->fk_matchtype		= yyvsp[-1].ival;
					n->fk_upd_action	= (char) (yyvsp[0].ival >> 8);
					n->fk_del_action	= (char) (yyvsp[0].ival & 0xFF);
					n->deferrable		= FALSE;
					n->initdeferred		= FALSE;
					yyval.node = (Node *)n;
				}
    break;

  case 302:
#line 2005 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_ATTR_DEFERRABLE;
					yyval.node = (Node *)n;
				}
    break;

  case 303:
#line 2011 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_ATTR_NOT_DEFERRABLE;
					yyval.node = (Node *)n;
				}
    break;

  case 304:
#line 2017 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_ATTR_DEFERRED;
					yyval.node = (Node *)n;
				}
    break;

  case 305:
#line 2023 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_ATTR_IMMEDIATE;
					yyval.node = (Node *)n;
				}
    break;

  case 306:
#line 2041 "gram.y"
    {
					InhRelation *n = makeNode(InhRelation);
					n->relation = yyvsp[-1].range;
					n->options = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 307:
#line 2050 "gram.y"
    { yyval.list = lappend_int(yyvsp[-1].list, yyvsp[0].ival); }
    break;

  case 308:
#line 2051 "gram.y"
    { yyval.list = NIL; }
    break;

  case 309:
#line 2055 "gram.y"
    { yyval.ival = 	CREATE_TABLE_LIKE_INCLUDING_DEFAULTS; }
    break;

  case 310:
#line 2056 "gram.y"
    { yyval.ival = 	CREATE_TABLE_LIKE_EXCLUDING_DEFAULTS; }
    break;

  case 311:
#line 2057 "gram.y"
    { yyval.ival = 	CREATE_TABLE_LIKE_INCLUDING_CONSTRAINTS; }
    break;

  case 312:
#line 2058 "gram.y"
    { yyval.ival = 	CREATE_TABLE_LIKE_EXCLUDING_CONSTRAINTS; }
    break;

  case 313:
#line 2059 "gram.y"
    { yyval.ival = 	CREATE_TABLE_LIKE_INCLUDING_INDEXES; }
    break;

  case 314:
#line 2060 "gram.y"
    { yyval.ival = 	CREATE_TABLE_LIKE_EXCLUDING_INDEXES; }
    break;

  case 315:
#line 2070 "gram.y"
    {
					switch (nodeTag(yyvsp[0].node))
					{
						case T_Constraint:
							{
								Constraint *n = (Constraint *)yyvsp[0].node;
								n->name = yyvsp[-1].str;
							}
							break;
						case T_FkConstraint:
							{
								FkConstraint *n = (FkConstraint *)yyvsp[0].node;
								n->constr_name = yyvsp[-1].str;
							}
							break;
						default:
							break;
					}
					yyval.node = yyvsp[0].node;
				}
    break;

  case 316:
#line 2090 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 317:
#line 2095 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_CHECK;
					n->name = NULL;
					n->raw_expr = yyvsp[-1].node;
					n->cooked_expr = NULL;
					n->indexspace = NULL;
					yyval.node = (Node *)n;
				}
    break;

  case 318:
#line 2105 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_UNIQUE;
					n->name = NULL;
					n->raw_expr = NULL;
					n->cooked_expr = NULL;
					n->keys = yyvsp[-3].list;
					n->options = yyvsp[-1].list;
					n->indexspace = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 319:
#line 2117 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_PRIMARY;
					n->name = NULL;
					n->raw_expr = NULL;
					n->cooked_expr = NULL;
					n->keys = yyvsp[-3].list;
					n->options = yyvsp[-1].list;
					n->indexspace = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 320:
#line 2130 "gram.y"
    {
					FkConstraint *n = makeNode(FkConstraint);
					n->constr_name		= NULL;
					n->pktable			= yyvsp[-4].range;
					n->fk_attrs			= yyvsp[-7].list;
					n->pk_attrs			= yyvsp[-3].list;
					n->fk_matchtype		= yyvsp[-2].ival;
					n->fk_upd_action	= (char) (yyvsp[-1].ival >> 8);
					n->fk_del_action	= (char) (yyvsp[-1].ival & 0xFF);
					n->deferrable		= (yyvsp[0].ival & 1) != 0;
					n->initdeferred		= (yyvsp[0].ival & 2) != 0;
					yyval.node = (Node *)n;
				}
    break;

  case 321:
#line 2146 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 322:
#line 2147 "gram.y"
    { yyval.list = NIL; }
    break;

  case 323:
#line 2151 "gram.y"
    { yyval.list = list_make1(yyvsp[0].node); }
    break;

  case 324:
#line 2152 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
    break;

  case 325:
#line 2156 "gram.y"
    {
					yyval.node = (Node *) makeString(yyvsp[0].str);
				}
    break;

  case 326:
#line 2162 "gram.y"
    {
				yyval.ival = FKCONSTR_MATCH_FULL;
			}
    break;

  case 327:
#line 2166 "gram.y"
    {
				ereport(ERROR,
						(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
						 errmsg("MATCH PARTIAL not yet implemented")));
				yyval.ival = FKCONSTR_MATCH_PARTIAL;
			}
    break;

  case 328:
#line 2173 "gram.y"
    {
				yyval.ival = FKCONSTR_MATCH_UNSPECIFIED;
			}
    break;

  case 329:
#line 2177 "gram.y"
    {
				yyval.ival = FKCONSTR_MATCH_UNSPECIFIED;
			}
    break;

  case 330:
#line 2190 "gram.y"
    { yyval.ival = (yyvsp[0].ival << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); }
    break;

  case 331:
#line 2192 "gram.y"
    { yyval.ival = (FKCONSTR_ACTION_NOACTION << 8) | (yyvsp[0].ival & 0xFF); }
    break;

  case 332:
#line 2194 "gram.y"
    { yyval.ival = (yyvsp[-1].ival << 8) | (yyvsp[0].ival & 0xFF); }
    break;

  case 333:
#line 2196 "gram.y"
    { yyval.ival = (yyvsp[0].ival << 8) | (yyvsp[-1].ival & 0xFF); }
    break;

  case 334:
#line 2198 "gram.y"
    { yyval.ival = (FKCONSTR_ACTION_NOACTION << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); }
    break;

  case 335:
#line 2201 "gram.y"
    { yyval.ival = yyvsp[0].ival; }
    break;

  case 336:
#line 2204 "gram.y"
    { yyval.ival = yyvsp[0].ival; }
    break;

  case 337:
#line 2208 "gram.y"
    { yyval.ival = FKCONSTR_ACTION_NOACTION; }
    break;

  case 338:
#line 2209 "gram.y"
    { yyval.ival = FKCONSTR_ACTION_RESTRICT; }
    break;

  case 339:
#line 2210 "gram.y"
    { yyval.ival = FKCONSTR_ACTION_CASCADE; }
    break;

  case 340:
#line 2211 "gram.y"
    { yyval.ival = FKCONSTR_ACTION_SETNULL; }
    break;

  case 341:
#line 2212 "gram.y"
    { yyval.ival = FKCONSTR_ACTION_SETDEFAULT; }
    break;

  case 342:
#line 2215 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 343:
#line 2216 "gram.y"
    { yyval.list = NIL; }
    break;

  case 344:
#line 2221 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 345:
#line 2222 "gram.y"
    { yyval.list = list_make1(defWithOids(true)); }
    break;

  case 346:
#line 2223 "gram.y"
    { yyval.list = list_make1(defWithOids(false)); }
    break;

  case 347:
#line 2224 "gram.y"
    { yyval.list = NIL; }
    break;

  case 348:
#line 2227 "gram.y"
    { yyval.oncommit = ONCOMMIT_DROP; }
    break;

  case 349:
#line 2228 "gram.y"
    { yyval.oncommit = ONCOMMIT_DELETE_ROWS; }
    break;

  case 350:
#line 2229 "gram.y"
    { yyval.oncommit = ONCOMMIT_PRESERVE_ROWS; }
    break;

  case 351:
#line 2230 "gram.y"
    { yyval.oncommit = ONCOMMIT_NOOP; }
    break;

  case 352:
#line 2233 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 353:
#line 2234 "gram.y"
    { yyval.str = NULL; }
    break;

  case 354:
#line 2237 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 355:
#line 2238 "gram.y"
    { yyval.str = NULL; }
    break;

  case 356:
#line 2250 "gram.y"
    {
					/*
					 * When the SelectStmt is a set-operation tree, we must
					 * stuff the INTO information into the leftmost component
					 * Select, because that's where analyze.c will expect
					 * to find it.	Similarly, the output column names must
					 * be attached to that Select's target list.
					 */
					SelectStmt *n = findLeftmostSelect((SelectStmt *) yyvsp[0].node);
					if (n->into != NULL)
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("CREATE TABLE AS may not specify INTO")));
					yyvsp[-6].range->istemp = yyvsp[-8].boolean;
					n->into = yyvsp[-6].range;
					n->intoColNames = yyvsp[-5].list;
					n->intoOptions = yyvsp[-4].list;
					n->intoOnCommit = yyvsp[-3].oncommit;
					n->intoTableSpaceName = yyvsp[-2].str;
					yyval.node = yyvsp[0].node;
				}
    break;

  case 357:
#line 2274 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 358:
#line 2275 "gram.y"
    { yyval.list = NIL; }
    break;

  case 359:
#line 2279 "gram.y"
    { yyval.list = list_make1(yyvsp[0].node); }
    break;

  case 360:
#line 2280 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
    break;

  case 361:
#line 2285 "gram.y"
    {
					ColumnDef *n = makeNode(ColumnDef);
					n->colname = yyvsp[0].str;
					n->typename = NULL;
					n->inhcount = 0;
					n->is_local = true;
					n->is_not_null = false;
					n->raw_default = NULL;
					n->cooked_default = NULL;
					n->constraints = NIL;
					yyval.node = (Node *)n;
				}
    break;

  case 362:
#line 2310 "gram.y"
    {
					CreateSeqStmt *n = makeNode(CreateSeqStmt);
					yyvsp[-1].range->istemp = yyvsp[-3].boolean;
					n->sequence = yyvsp[-1].range;
					n->options = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 363:
#line 2321 "gram.y"
    {
					AlterSeqStmt *n = makeNode(AlterSeqStmt);
					n->sequence = yyvsp[-1].range;
					n->options = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 364:
#line 2329 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
    break;

  case 365:
#line 2330 "gram.y"
    { yyval.list = NIL; }
    break;

  case 366:
#line 2334 "gram.y"
    {
					yyval.defelt = makeDefElem("cache", (Node *)yyvsp[0].value);
				}
    break;

  case 367:
#line 2338 "gram.y"
    {
					yyval.defelt = makeDefElem("cycle", (Node *)makeInteger(TRUE));
				}
    break;

  case 368:
#line 2342 "gram.y"
    {
					yyval.defelt = makeDefElem("cycle", (Node *)makeInteger(FALSE));
				}
    break;

  case 369:
#line 2346 "gram.y"
    {
					yyval.defelt = makeDefElem("increment", (Node *)yyvsp[0].value);
				}
    break;

  case 370:
#line 2350 "gram.y"
    {
					yyval.defelt = makeDefElem("maxvalue", (Node *)yyvsp[0].value);
				}
    break;

  case 371:
#line 2354 "gram.y"
    {
					yyval.defelt = makeDefElem("minvalue", (Node *)yyvsp[0].value);
				}
    break;

  case 372:
#line 2358 "gram.y"
    {
					yyval.defelt = makeDefElem("maxvalue", NULL);
				}
    break;

  case 373:
#line 2362 "gram.y"
    {
					yyval.defelt = makeDefElem("minvalue", NULL);
				}
    break;

  case 374:
#line 2366 "gram.y"
    {
					yyval.defelt = makeDefElem("owned_by", (Node *)yyvsp[0].list);
				}
    break;

  case 375:
#line 2370 "gram.y"
    {
					yyval.defelt = makeDefElem("start", (Node *)yyvsp[0].value);
				}
    break;

  case 376:
#line 2374 "gram.y"
    {
					yyval.defelt = makeDefElem("restart", (Node *)yyvsp[0].value);
				}
    break;

  case 377:
#line 2379 "gram.y"
    {}
    break;

  case 378:
#line 2380 "gram.y"
    {}
    break;

  case 379:
#line 2384 "gram.y"
    { yyval.value = yyvsp[0].value; }
    break;

  case 380:
#line 2385 "gram.y"
    { yyval.value = yyvsp[0].value; }
    break;

  case 381:
#line 2388 "gram.y"
    { yyval.value = makeFloat(yyvsp[0].str); }
    break;

  case 382:
#line 2390 "gram.y"
    {
					yyval.value = makeFloat(yyvsp[0].str);
					doNegateFloat(yyval.value);
				}
    break;

  case 383:
#line 2396 "gram.y"
    { yyval.value = makeInteger(yyvsp[0].ival); }
    break;

  case 384:
#line 2409 "gram.y"
    {
				CreatePLangStmt *n = makeNode(CreatePLangStmt);
				n->plname = yyvsp[0].str;
				/* parameters are all to be supplied by system */
				n->plhandler = NIL;
				n->plvalidator = NIL;
				n->pltrusted = false;
				yyval.node = (Node *)n;
			}
    break;

  case 385:
#line 2420 "gram.y"
    {
				CreatePLangStmt *n = makeNode(CreatePLangStmt);
				n->plname = yyvsp[-4].str;
				n->plhandler = yyvsp[-2].list;
				n->plvalidator = yyvsp[-1].list;
				n->pltrusted = yyvsp[-7].boolean;
				/* LANCOMPILER is now ignored entirely */
				yyval.node = (Node *)n;
			}
    break;

  case 386:
#line 2432 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 387:
#line 2433 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 388:
#line 2441 "gram.y"
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
    break;

  case 389:
#line 2442 "gram.y"
    { yyval.list = lcons(makeString(yyvsp[-1].str), yyvsp[0].list); }
    break;

  case 390:
#line 2446 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 391:
#line 2447 "gram.y"
    { yyval.list = NIL; }
    break;

  case 392:
#line 2451 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 393:
#line 2452 "gram.y"
    { yyval.str = NULL; }
    break;

  case 394:
#line 2457 "gram.y"
    {
					DropPLangStmt *n = makeNode(DropPLangStmt);
					n->plname = yyvsp[-1].str;
					n->behavior = yyvsp[0].dbehavior;
					n->missing_ok = false;
					yyval.node = (Node *)n;
				}
    break;

  case 395:
#line 2465 "gram.y"
    {
					DropPLangStmt *n = makeNode(DropPLangStmt);
					n->plname = yyvsp[-1].str;
					n->behavior = yyvsp[0].dbehavior;
					n->missing_ok = true;
					yyval.node = (Node *)n;
				}
    break;

  case 396:
#line 2475 "gram.y"
    {}
    break;

  case 397:
#line 2476 "gram.y"
    {}
    break;

  case 398:
#line 2487 "gram.y"
    {
					CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt);
					n->tablespacename = yyvsp[-3].str;
					n->owner = yyvsp[-2].str;
					n->location = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 399:
#line 2496 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 400:
#line 2497 "gram.y"
    { yyval.str = NULL; }
    break;

  case 401:
#line 2511 "gram.y"
    {
					DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt);
					n->tablespacename = yyvsp[0].str;
					n->missing_ok = false;
					yyval.node = (Node *) n;
				}
    break;

  case 402:
#line 2518 "gram.y"
    {
					DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt);
					n->tablespacename = yyvsp[0].str;
					n->missing_ok = true;
					yyval.node = (Node *) n;
				}
    break;

  case 403:
#line 2538 "gram.y"
    {
					CreateTrigStmt *n = makeNode(CreateTrigStmt);
					n->trigname = yyvsp[-11].str;
					n->relation = yyvsp[-7].range;
					n->funcname = yyvsp[-3].list;
					n->args = yyvsp[-1].list;
					n->before = yyvsp[-10].boolean;
					n->row = yyvsp[-6].boolean;
					memcpy(n->actions, yyvsp[-9].str, 4);
					n->isconstraint  = FALSE;
					n->deferrable	 = FALSE;
					n->initdeferred  = FALSE;
					n->constrrel = NULL;
					yyval.node = (Node *)n;
				}
    break;

  case 404:
#line 2558 "gram.y"
    {
					CreateTrigStmt *n = makeNode(CreateTrigStmt);
					n->trigname = yyvsp[-15].str;
					n->relation = yyvsp[-11].range;
					n->funcname = yyvsp[-3].list;
					n->args = yyvsp[-1].list;
					n->before = FALSE;
					n->row = TRUE;
					memcpy(n->actions, yyvsp[-13].str, 4);
					n->isconstraint  = TRUE;
					n->deferrable = (yyvsp[-9].ival & 1) != 0;
					n->initdeferred = (yyvsp[-9].ival & 2) != 0;

					n->constrrel = yyvsp[-10].range;
					yyval.node = (Node *)n;
				}
    break;

  case 405:
#line 2577 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 406:
#line 2578 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 407:
#line 2583 "gram.y"
    {
					char *e = palloc(4);
					e[0] = yyvsp[0].chr; e[1] = '\0';
					yyval.str = e;
				}
    break;

  case 408:
#line 2589 "gram.y"
    {
					char *e = palloc(4);
					e[0] = yyvsp[-2].chr; e[1] = yyvsp[0].chr; e[2] = '\0';
					yyval.str = e;
				}
    break;

  case 409:
#line 2595 "gram.y"
    {
					char *e = palloc(4);
					e[0] = yyvsp[-4].chr; e[1] = yyvsp[-2].chr; e[2] = yyvsp[0].chr; e[3] = '\0';
					yyval.str = e;
				}
    break;

  case 410:
#line 2603 "gram.y"
    { yyval.chr = 'i'; }
    break;

  case 411:
#line 2604 "gram.y"
    { yyval.chr = 'd'; }
    break;

  case 412:
#line 2605 "gram.y"
    { yyval.chr = 'u'; }
    break;

  case 413:
#line 2610 "gram.y"
    {
					yyval.boolean = yyvsp[0].boolean;
				}
    break;

  case 414:
#line 2614 "gram.y"
    {
					/*
					 * If ROW/STATEMENT not specified, default to
					 * STATEMENT, per SQL
					 */
					yyval.boolean = FALSE;
				}
    break;

  case 415:
#line 2624 "gram.y"
    {}
    break;

  case 416:
#line 2625 "gram.y"
    {}
    break;

  case 417:
#line 2629 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 418:
#line 2630 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 419:
#line 2634 "gram.y"
    { yyval.list = list_make1(yyvsp[0].value); }
    break;

  case 420:
#line 2635 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].value); }
    break;

  case 421:
#line 2636 "gram.y"
    { yyval.list = NIL; }
    break;

  case 422:
#line 2641 "gram.y"
    {
					char buf[64];
					snprintf(buf, sizeof(buf), "%d", yyvsp[0].ival);
					yyval.value = makeString(pstrdup(buf));
				}
    break;

  case 423:
#line 2646 "gram.y"
    { yyval.value = makeString(yyvsp[0].str); }
    break;

  case 424:
#line 2647 "gram.y"
    { yyval.value = makeString(yyvsp[0].str); }
    break;

  case 425:
#line 2648 "gram.y"
    { yyval.value = makeString(yyvsp[0].str); }
    break;

  case 426:
#line 2649 "gram.y"
    { yyval.value = makeString(yyvsp[0].str); }
    break;

  case 427:
#line 2650 "gram.y"
    { yyval.value = makeString(yyvsp[0].str); }
    break;

  case 428:
#line 2654 "gram.y"
    { yyval.range = yyvsp[0].range; }
    break;

  case 429:
#line 2655 "gram.y"
    { yyval.range = NULL; }
    break;

  case 430:
#line 2660 "gram.y"
    { yyval.ival = yyvsp[0].ival; }
    break;

  case 431:
#line 2662 "gram.y"
    {
					if (yyvsp[-1].ival == 0 && yyvsp[0].ival != 0)
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE")));
					yyval.ival = yyvsp[-1].ival | yyvsp[0].ival;
				}
    break;

  case 432:
#line 2670 "gram.y"
    {
					if (yyvsp[0].ival != 0)
						yyval.ival = 3;
					else
						yyval.ival = 0;
				}
    break;

  case 433:
#line 2677 "gram.y"
    {
					if (yyvsp[0].ival == 0 && yyvsp[-1].ival != 0)
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE")));
					yyval.ival = yyvsp[-1].ival | yyvsp[0].ival;
				}
    break;

  case 434:
#line 2685 "gram.y"
    { yyval.ival = 0; }
    break;

  case 435:
#line 2689 "gram.y"
    { yyval.ival = 0; }
    break;

  case 436:
#line 2690 "gram.y"
    { yyval.ival = 1; }
    break;

  case 437:
#line 2694 "gram.y"
    { yyval.ival = 0; }
    break;

  case 438:
#line 2695 "gram.y"
    { yyval.ival = 2; }
    break;

  case 439:
#line 2701 "gram.y"
    {
					DropPropertyStmt *n = makeNode(DropPropertyStmt);
					n->relation = yyvsp[-1].range;
					n->property = yyvsp[-3].str;
					n->behavior = yyvsp[0].dbehavior;
					n->removeType = OBJECT_TRIGGER;
					n->missing_ok = false;
					yyval.node = (Node *) n;
				}
    break;

  case 440:
#line 2711 "gram.y"
    {
					DropPropertyStmt *n = makeNode(DropPropertyStmt);
					n->relation = yyvsp[-1].range;
					n->property = yyvsp[-3].str;
					n->behavior = yyvsp[0].dbehavior;
					n->removeType = OBJECT_TRIGGER;
					n->missing_ok = true;
					yyval.node = (Node *) n;
				}
    break;

  case 441:
#line 2734 "gram.y"
    {
					CreateTrigStmt *n = makeNode(CreateTrigStmt);
					n->trigname = yyvsp[-5].str;
					n->args = list_make1(yyvsp[-2].node);
					n->isconstraint  = TRUE;
					n->deferrable = (yyvsp[0].ival & 1) != 0;
					n->initdeferred = (yyvsp[0].ival & 2) != 0;

					ereport(ERROR,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("CREATE ASSERTION is not yet implemented")));

					yyval.node = (Node *)n;
				}
    break;

  case 442:
#line 2752 "gram.y"
    {
					DropPropertyStmt *n = makeNode(DropPropertyStmt);
					n->relation = NULL;
					n->property = yyvsp[-1].str;
					n->behavior = yyvsp[0].dbehavior;
					n->removeType = OBJECT_TRIGGER; /* XXX */
					ereport(ERROR,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("DROP ASSERTION is not yet implemented")));
					yyval.node = (Node *) n;
				}
    break;

  case 443:
#line 2775 "gram.y"
    {
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_AGGREGATE;
					n->oldstyle = false;
					n->defnames = yyvsp[-2].list;
					n->args = yyvsp[-1].list;
					n->definition = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 444:
#line 2785 "gram.y"
    {
					/* old-style (pre-8.2) syntax for CREATE AGGREGATE */
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_AGGREGATE;
					n->oldstyle = true;
					n->defnames = yyvsp[-1].list;
					n->args = NIL;
					n->definition = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 445:
#line 2796 "gram.y"
    {
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_OPERATOR;
					n->oldstyle = false;
					n->defnames = yyvsp[-1].list;
					n->args = NIL;
					n->definition = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 446:
#line 2806 "gram.y"
    {
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_TYPE;
					n->oldstyle = false;
					n->defnames = yyvsp[-1].list;
					n->args = NIL;
					n->definition = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 447:
#line 2816 "gram.y"
    {
					/* Shell type (identified by lack of definition) */
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_TYPE;
					n->oldstyle = false;
					n->defnames = yyvsp[0].list;
					n->args = NIL;
					n->definition = NIL;
					yyval.node = (Node *)n;
				}
    break;

  case 448:
#line 2827 "gram.y"
    {
					CompositeTypeStmt *n = makeNode(CompositeTypeStmt);
					RangeVar *r = makeNode(RangeVar);

					/* can't use qualified_name, sigh */
					switch (list_length(yyvsp[-4].list))
					{
						case 1:
							r->catalogname = NULL;
							r->schemaname = NULL;
							r->relname = strVal(linitial(yyvsp[-4].list));
							break;
						case 2:
							r->catalogname = NULL;
							r->schemaname = strVal(linitial(yyvsp[-4].list));
							r->relname = strVal(lsecond(yyvsp[-4].list));
							break;
						case 3:
							r->catalogname = strVal(linitial(yyvsp[-4].list));
							r->schemaname = strVal(lsecond(yyvsp[-4].list));
							r->relname = strVal(lthird(yyvsp[-4].list));
							break;
						default:
							ereport(ERROR,
									(errcode(ERRCODE_SYNTAX_ERROR),
									 errmsg("improper qualified name (too many dotted names): %s",
											NameListToString(yyvsp[-4].list))));
							break;
					}
					n->typevar = r;
					n->coldeflist = yyvsp[-1].list;
					yyval.node = (Node *)n;
				}
    break;

  case 449:
#line 2862 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 450:
#line 2865 "gram.y"
    { yyval.list = list_make1(yyvsp[0].defelt); }
    break;

  case 451:
#line 2866 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].defelt); }
    break;

  case 452:
#line 2870 "gram.y"
    {
					yyval.defelt = makeDefElem(yyvsp[-2].str, (Node *)yyvsp[0].node);
				}
    break;

  case 453:
#line 2874 "gram.y"
    {
					yyval.defelt = makeDefElem(yyvsp[0].str, NULL);
				}
    break;

  case 454:
#line 2880 "gram.y"
    { yyval.node = (Node *)yyvsp[0].typnam; }
    break;

  case 455:
#line 2881 "gram.y"
    { yyval.node = (Node *)makeString(pstrdup(yyvsp[0].keyword)); }
    break;

  case 456:
#line 2882 "gram.y"
    { yyval.node = (Node *)makeString(pstrdup(yyvsp[0].keyword)); }
    break;

  case 457:
#line 2883 "gram.y"
    { yyval.node = (Node *)yyvsp[0].list; }
    break;

  case 458:
#line 2884 "gram.y"
    { yyval.node = (Node *)yyvsp[0].value; }
    break;

  case 459:
#line 2885 "gram.y"
    { yyval.node = (Node *)makeString(yyvsp[0].str); }
    break;

  case 460:
#line 2888 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 461:
#line 2889 "gram.y"
    { yyval.list = NIL; }
    break;

  case 462:
#line 2893 "gram.y"
    { yyval.list = list_make1(yyvsp[0].typnam); }
    break;

  case 463:
#line 2894 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].typnam); }
    break;

  case 464:
#line 2897 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 465:
#line 2900 "gram.y"
    { yyval.list = list_make1(yyvsp[0].defelt); }
    break;

  case 466:
#line 2901 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].defelt); }
    break;

  case 467:
#line 2905 "gram.y"
    {
					yyval.defelt = makeDefElem(yyvsp[-2].str, (Node *)yyvsp[0].node);
				}
    break;

  case 468:
#line 2922 "gram.y"
    {
					CreateOpClassStmt *n = makeNode(CreateOpClassStmt);
					n->opclassname = yyvsp[-8].list;
					n->isDefault = yyvsp[-7].boolean;
					n->datatype = yyvsp[-4].typnam;
					n->amname = yyvsp[-2].str;
					n->items = yyvsp[0].list;
					yyval.node = (Node *) n;
				}
    break;

  case 469:
#line 2934 "gram.y"
    { yyval.list = list_make1(yyvsp[0].node); }
    break;

  case 470:
#line 2935 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
    break;

  case 471:
#line 2940 "gram.y"
    {
					CreateOpClassItem *n = makeNode(CreateOpClassItem);
					n->itemtype = OPCLASS_ITEM_OPERATOR;
					n->name = yyvsp[-1].list;
					n->args = NIL;
					n->number = yyvsp[-2].ival;
					n->recheck = yyvsp[0].boolean;
					yyval.node = (Node *) n;
				}
    break;

  case 472:
#line 2950 "gram.y"
    {
					CreateOpClassItem *n = makeNode(CreateOpClassItem);
					n->itemtype = OPCLASS_ITEM_OPERATOR;
					n->name = yyvsp[-4].list;
					n->args = yyvsp[-2].list;
					n->number = yyvsp[-5].ival;
					n->recheck = yyvsp[0].boolean;
					yyval.node = (Node *) n;
				}
    break;

  case 473:
#line 2960 "gram.y"
    {
					CreateOpClassItem *n = makeNode(CreateOpClassItem);
					n->itemtype = OPCLASS_ITEM_FUNCTION;
					n->name = yyvsp[-1].list;
					n->args = extractArgTypes(yyvsp[0].list);
					n->number = yyvsp[-2].ival;
					yyval.node = (Node *) n;
				}
    break;

  case 474:
#line 2969 "gram.y"
    {
					CreateOpClassItem *n = makeNode(CreateOpClassItem);
					n->itemtype = OPCLASS_ITEM_STORAGETYPE;
					n->storedtype = yyvsp[0].typnam;
					yyval.node = (Node *) n;
				}
    break;

  case 475:
#line 2977 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 476:
#line 2978 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 477:
#line 2981 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 478:
#line 2982 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 479:
#line 2988 "gram.y"
    {
					RemoveOpClassStmt *n = makeNode(RemoveOpClassStmt);
					n->opclassname = yyvsp[-3].list;
					n->amname = yyvsp[-1].str;
					n->behavior = yyvsp[0].dbehavior;
					n->missing_ok = false;
					yyval.node = (Node *) n;
				}
    break;

  case 480:
#line 2997 "gram.y"
    {
					RemoveOpClassStmt *n = makeNode(RemoveOpClassStmt);
					n->opclassname = yyvsp[-3].list;
					n->amname = yyvsp[-1].str;
					n->behavior = yyvsp[0].dbehavior;
					n->missing_ok = true;
					yyval.node = (Node *) n;
				}
    break;

  case 481:
#line 3017 "gram.y"
    {
					DropOwnedStmt *n = makeNode(DropOwnedStmt);
					n->roles = yyvsp[-1].list;
					n->behavior = yyvsp[0].dbehavior;
					yyval.node = (Node *)n;
				}
    break;

  case 482:
#line 3027 "gram.y"
    {
					ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt);
					n->roles = yyvsp[-2].list;
					n->newrole = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 483:
#line 3045 "gram.y"
    {
					DropStmt *n = makeNode(DropStmt);
					n->removeType = yyvsp[-4].objtype;
					n->missing_ok = TRUE;
					n->objects = yyvsp[-1].list;
					n->behavior = yyvsp[0].dbehavior;
					yyval.node = (Node *)n;
				}
    break;

  case 484:
#line 3054 "gram.y"
    {
					DropStmt *n = makeNode(DropStmt);
					n->removeType = yyvsp[-2].objtype;
					n->missing_ok = FALSE;
					n->objects = yyvsp[-1].list;
					n->behavior = yyvsp[0].dbehavior;
					yyval.node = (Node *)n;
				}
    break;

  case 485:
#line 3065 "gram.y"
    { yyval.objtype = OBJECT_TABLE; }
    break;

  case 486:
#line 3066 "gram.y"
    { yyval.objtype = OBJECT_SEQUENCE; }
    break;

  case 487:
#line 3067 "gram.y"
    { yyval.objtype = OBJECT_VIEW; }
    break;

  case 488:
#line 3068 "gram.y"
    { yyval.objtype = OBJECT_INDEX; }
    break;

  case 489:
#line 3069 "gram.y"
    { yyval.objtype = OBJECT_TYPE; }
    break;

  case 490:
#line 3070 "gram.y"
    { yyval.objtype = OBJECT_DOMAIN; }
    break;

  case 491:
#line 3071 "gram.y"
    { yyval.objtype = OBJECT_CONVERSION; }
    break;

  case 492:
#line 3072 "gram.y"
    { yyval.objtype = OBJECT_SCHEMA; }
    break;

  case 493:
#line 3076 "gram.y"
    { yyval.list = list_make1(yyvsp[0].list); }
    break;

  case 494:
#line 3077 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].list); }
    break;

  case 495:
#line 3080 "gram.y"
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
    break;

  case 496:
#line 3081 "gram.y"
    { yyval.list = lcons(makeString(yyvsp[-1].str), yyvsp[0].list); }
    break;

  case 497:
#line 3085 "gram.y"
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
    break;

  case 498:
#line 3087 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, makeString(yyvsp[0].str)); }
    break;

  case 499:
#line 3100 "gram.y"
    {
					TruncateStmt *n = makeNode(TruncateStmt);
					n->relations = yyvsp[-1].list;
					n->behavior = yyvsp[0].dbehavior;
					yyval.node = (Node *)n;
				}
    break;

  case 500:
#line 3128 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = yyvsp[-3].objtype;
					n->objname = yyvsp[-2].list;
					n->objargs = NIL;
					n->comment = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 501:
#line 3137 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_AGGREGATE;
					n->objname = yyvsp[-3].list;
					n->objargs = yyvsp[-2].list;
					n->comment = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 502:
#line 3146 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_FUNCTION;
					n->objname = yyvsp[-3].list;
					n->objargs = extractArgTypes(yyvsp[-2].list);
					n->comment = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 503:
#line 3156 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_OPERATOR;
					n->objname = yyvsp[-5].list;
					n->objargs = yyvsp[-3].list;
					n->comment = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 504:
#line 3165 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_CONSTRAINT;
					n->objname = lappend(yyvsp[-2].list, makeString(yyvsp[-4].str));
					n->objargs = NIL;
					n->comment = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 505:
#line 3174 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_RULE;
					n->objname = lappend(yyvsp[-2].list, makeString(yyvsp[-4].str));
					n->objargs = NIL;
					n->comment = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 506:
#line 3183 "gram.y"
    {
					/* Obsolete syntax supported for awhile for compatibility */
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_RULE;
					n->objname = list_make1(makeString(yyvsp[-2].str));
					n->objargs = NIL;
					n->comment = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 507:
#line 3193 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_TRIGGER;
					n->objname = lappend(yyvsp[-2].list, makeString(yyvsp[-4].str));
					n->objargs = NIL;
					n->comment = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 508:
#line 3202 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_OPCLASS;
					n->objname = yyvsp[-4].list;
					n->objargs = list_make1(makeString(yyvsp[-2].str));
					n->comment = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 509:
#line 3211 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_LARGEOBJECT;
					n->objname = list_make1(yyvsp[-2].value);
					n->objargs = NIL;
					n->comment = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 510:
#line 3220 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_CAST;
					n->objname = list_make1(yyvsp[-5].typnam);
					n->objargs = list_make1(yyvsp[-3].typnam);
					n->comment = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 511:
#line 3229 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_LANGUAGE;
					n->objname = yyvsp[-2].list;
					n->objargs = NIL;
					n->comment = yyvsp[0].str;
					yyval.node = (Node *) n;
				}
    break;

  case 512:
#line 3240 "gram.y"
    { yyval.objtype = OBJECT_COLUMN; }
    break;

  case 513:
#line 3241 "gram.y"
    { yyval.objtype = OBJECT_DATABASE; }
    break;

  case 514:
#line 3242 "gram.y"
    { yyval.objtype = OBJECT_SCHEMA; }
    break;

  case 515:
#line 3243 "gram.y"
    { yyval.objtype = OBJECT_INDEX; }
    break;

  case 516:
#line 3244 "gram.y"
    { yyval.objtype = OBJECT_SEQUENCE; }
    break;

  case 517:
#line 3245 "gram.y"
    { yyval.objtype = OBJECT_TABLE; }
    break;

  case 518:
#line 3246 "gram.y"
    { yyval.objtype = OBJECT_TYPE; }
    break;

  case 519:
#line 3247 "gram.y"
    { yyval.objtype = OBJECT_TYPE; }
    break;

  case 520:
#line 3248 "gram.y"
    { yyval.objtype = OBJECT_VIEW; }
    break;

  case 521:
#line 3249 "gram.y"
    { yyval.objtype = OBJECT_CONVERSION; }
    break;

  case 522:
#line 3250 "gram.y"
    { yyval.objtype = OBJECT_TABLESPACE; }
    break;

  case 523:
#line 3251 "gram.y"
    { yyval.objtype = OBJECT_ROLE; }
    break;

  case 524:
#line 3255 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 525:
#line 3256 "gram.y"
    { yyval.str = NULL; }
    break;

  case 526:
#line 3267 "gram.y"
    {
					FetchStmt *n = (FetchStmt *) yyvsp[-2].node;
					n->portalname = yyvsp[0].str;
					n->ismove = FALSE;
					yyval.node = (Node *)n;
				}
    break;

  case 527:
#line 3274 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_FORWARD;
					n->howMany = 1;
					n->portalname = yyvsp[0].str;
					n->ismove = FALSE;
					yyval.node = (Node *)n;
				}
    break;

  case 528:
#line 3283 "gram.y"
    {
					FetchStmt *n = (FetchStmt *) yyvsp[-2].node;
					n->portalname = yyvsp[0].str;
					n->ismove = TRUE;
					yyval.node = (Node *)n;
				}
    break;

  case 529:
#line 3290 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_FORWARD;
					n->howMany = 1;
					n->portalname = yyvsp[0].str;
					n->ismove = TRUE;
					yyval.node = (Node *)n;
				}
    break;

  case 530:
#line 3302 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_FORWARD;
					n->howMany = 1;
					yyval.node = (Node *)n;
				}
    break;

  case 531:
#line 3309 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_FORWARD;
					n->howMany = 1;
					yyval.node = (Node *)n;
				}
    break;

  case 532:
#line 3316 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_BACKWARD;
					n->howMany = 1;
					yyval.node = (Node *)n;
				}
    break;

  case 533:
#line 3323 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_ABSOLUTE;
					n->howMany = 1;
					yyval.node = (Node *)n;
				}
    break;

  case 534:
#line 3330 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_ABSOLUTE;
					n->howMany = -1;
					yyval.node = (Node *)n;
				}
    break;

  case 535:
#line 3337 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_ABSOLUTE;
					n->howMany = yyvsp[0].ival;
					yyval.node = (Node *)n;
				}
    break;

  case 536:
#line 3344 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_RELATIVE;
					n->howMany = yyvsp[0].ival;
					yyval.node = (Node *)n;
				}
    break;

  case 537:
#line 3351 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_FORWARD;
					n->howMany = yyvsp[0].ival;
					yyval.node = (Node *)n;
				}
    break;

  case 538:
#line 3358 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_FORWARD;
					n->howMany = FETCH_ALL;
					yyval.node = (Node *)n;
				}
    break;

  case 539:
#line 3365 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_FORWARD;
					n->howMany = 1;
					yyval.node = (Node *)n;
				}
    break;

  case 540:
#line 3372 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_FORWARD;
					n->howMany = yyvsp[0].ival;
					yyval.node = (Node *)n;
				}
    break;

  case 541:
#line 3379 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_FORWARD;
					n->howMany = FETCH_ALL;
					yyval.node = (Node *)n;
				}
    break;

  case 542:
#line 3386 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_BACKWARD;
					n->howMany = 1;
					yyval.node = (Node *)n;
				}
    break;

  case 543:
#line 3393 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_BACKWARD;
					n->howMany = yyvsp[0].ival;
					yyval.node = (Node *)n;
				}
    break;

  case 544:
#line 3400 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->direction = FETCH_BACKWARD;
					n->howMany = FETCH_ALL;
					yyval.node = (Node *)n;
				}
    break;

  case 545:
#line 3408 "gram.y"
    {}
    break;

  case 546:
#line 3409 "gram.y"
    {}
    break;

  case 547:
#line 3421 "gram.y"
    {
					GrantStmt *n = makeNode(GrantStmt);
					n->is_grant = true;
					n->privileges = yyvsp[-5].list;
					n->objtype = (yyvsp[-3].privtarget)->objtype;
					n->objects = (yyvsp[-3].privtarget)->objs;
					n->grantees = yyvsp[-1].list;
					n->grant_option = yyvsp[0].boolean;
					yyval.node = (Node*)n;
				}
    break;

  case 548:
#line 3436 "gram.y"
    {
					GrantStmt *n = makeNode(GrantStmt);
					n->is_grant = false;
					n->grant_option = false;
					n->privileges = yyvsp[-5].list;
					n->objtype = (yyvsp[-3].privtarget)->objtype;
					n->objects = (yyvsp[-3].privtarget)->objs;
					n->grantees = yyvsp[-1].list;
					n->behavior = yyvsp[0].dbehavior;
					yyval.node = (Node *)n;
				}
    break;

  case 549:
#line 3449 "gram.y"
    {
					GrantStmt *n = makeNode(GrantStmt);
					n->is_grant = false;
					n->grant_option = true;
					n->privileges = yyvsp[-5].list;
					n->objtype = (yyvsp[-3].privtarget)->objtype;
					n->objects = (yyvsp[-3].privtarget)->objs;
					n->grantees = yyvsp[-1].list;
					n->behavior = yyvsp[0].dbehavior;
					yyval.node = (Node *)n;
				}
    break;

  case 550:
#line 3474 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 551:
#line 3476 "gram.y"
    { yyval.list = NIL; }
    break;

  case 552:
#line 3478 "gram.y"
    { yyval.list = NIL; }
    break;

  case 553:
#line 3482 "gram.y"
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
    break;

  case 554:
#line 3484 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, makeString(yyvsp[0].str)); }
    break;

  case 555:
#line 3487 "gram.y"
    { yyval.str = pstrdup(yyvsp[0].keyword); }
    break;

  case 556:
#line 3488 "gram.y"
    { yyval.str = pstrdup(yyvsp[0].keyword); }
    break;

  case 557:
#line 3489 "gram.y"
    { yyval.str = pstrdup(yyvsp[0].keyword); }
    break;

  case 558:
#line 3490 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 559:
#line 3499 "gram.y"
    {
					PrivTarget *n = makeNode(PrivTarget);
					n->objtype = ACL_OBJECT_RELATION;
					n->objs = yyvsp[0].list;
					yyval.privtarget = n;
				}
    break;

  case 560:
#line 3506 "gram.y"
    {
					PrivTarget *n = makeNode(PrivTarget);
					n->objtype = ACL_OBJECT_RELATION;
					n->objs = yyvsp[0].list;
					yyval.privtarget = n;
				}
    break;

  case 561:
#line 3513 "gram.y"
    {
					PrivTarget *n = makeNode(PrivTarget);
					n->objtype = ACL_OBJECT_SEQUENCE;
					n->objs = yyvsp[0].list;
					yyval.privtarget = n;
				}
    break;

  case 562:
#line 3520 "gram.y"
    {
					PrivTarget *n = makeNode(PrivTarget);
					n->objtype = ACL_OBJECT_FUNCTION;
					n->objs = yyvsp[0].list;
					yyval.privtarget = n;
				}
    break;

  case 563:
#line 3527 "gram.y"
    {
					PrivTarget *n = makeNode(PrivTarget);
					n->objtype = ACL_OBJECT_DATABASE;
					n->objs = yyvsp[0].list;
					yyval.privtarget = n;
				}
    break;

  case 564:
#line 3534 "gram.y"
    {
					PrivTarget *n = makeNode(PrivTarget);
					n->objtype = ACL_OBJECT_LANGUAGE;
					n->objs = yyvsp[0].list;
					yyval.privtarget = n;
				}
    break;

  case 565:
#line 3541 "gram.y"
    {
					PrivTarget *n = makeNode(PrivTarget);
					n->objtype = ACL_OBJECT_NAMESPACE;
					n->objs = yyvsp[0].list;
					yyval.privtarget = n;
				}
    break;

  case 566:
#line 3548 "gram.y"
    {
					PrivTarget *n = makeNode(PrivTarget);
					n->objtype = ACL_OBJECT_TABLESPACE;
					n->objs = yyvsp[0].list;
					yyval.privtarget = n;
				}
    break;

  case 567:
#line 3558 "gram.y"
    { yyval.list = list_make1(yyvsp[0].node); }
    break;

  case 568:
#line 3559 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
    break;

  case 569:
#line 3563 "gram.y"
    {
					PrivGrantee *n = makeNode(PrivGrantee);
					/* This hack lets us avoid reserving PUBLIC as a keyword*/
					if (strcmp(yyvsp[0].str, "public") == 0)
						n->rolname = NULL;
					else
						n->rolname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 570:
#line 3573 "gram.y"
    {
					PrivGrantee *n = makeNode(PrivGrantee);
					/* Treat GROUP PUBLIC as a synonym for PUBLIC */
					if (strcmp(yyvsp[0].str, "public") == 0)
						n->rolname = NULL;
					else
						n->rolname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 571:
#line 3586 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 572:
#line 3587 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 573:
#line 3591 "gram.y"
    { yyval.list = list_make1(yyvsp[0].funwithargs); }
    break;

  case 574:
#line 3593 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].funwithargs); }
    break;

  case 575:
#line 3598 "gram.y"
    {
					FuncWithArgs *n = makeNode(FuncWithArgs);
					n->funcname = yyvsp[-1].list;
					n->funcargs = extractArgTypes(yyvsp[0].list);
					yyval.funwithargs = n;
				}
    break;

  case 576:
#line 3614 "gram.y"
    {
					GrantRoleStmt *n = makeNode(GrantRoleStmt);
					n->is_grant = true;
					n->granted_roles = yyvsp[-4].list;
					n->grantee_roles = yyvsp[-2].list;
					n->admin_opt = yyvsp[-1].boolean;
					n->grantor = yyvsp[0].str;
					yyval.node = (Node*)n;
				}
    break;

  case 577:
#line 3627 "gram.y"
    {
					GrantRoleStmt *n = makeNode(GrantRoleStmt);
					n->is_grant = false;
					n->admin_opt = false;
					n->granted_roles = yyvsp[-4].list;
					n->grantee_roles = yyvsp[-2].list;
					n->behavior = yyvsp[0].dbehavior;
					yyval.node = (Node*)n;
				}
    break;

  case 578:
#line 3637 "gram.y"
    {
					GrantRoleStmt *n = makeNode(GrantRoleStmt);
					n->is_grant = false;
					n->admin_opt = true;
					n->granted_roles = yyvsp[-4].list;
					n->grantee_roles = yyvsp[-2].list;
					n->behavior = yyvsp[0].dbehavior;
					yyval.node = (Node*)n;
				}
    break;

  case 579:
#line 3648 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 580:
#line 3649 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 581:
#line 3652 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 582:
#line 3653 "gram.y"
    { yyval.str = NULL; }
    break;

  case 583:
#line 3671 "gram.y"
    {
					IndexStmt *n = makeNode(IndexStmt);
					n->unique = yyvsp[-11].boolean;
					n->concurrent = false;
					n->idxname = yyvsp[-9].str;
					n->relation = yyvsp[-7].range;
					n->accessMethod = yyvsp[-6].str;
					n->indexParams = yyvsp[-4].list;
					n->options = yyvsp[-2].list;
					n->tableSpace = yyvsp[-1].str;
					n->whereClause = yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 584:
#line 3687 "gram.y"
    {
					IndexStmt *n = makeNode(IndexStmt);
					n->unique = yyvsp[-12].boolean;
					n->concurrent = true;
					n->idxname = yyvsp[-9].str;
					n->relation = yyvsp[-7].range;
					n->accessMethod = yyvsp[-6].str;
					n->indexParams = yyvsp[-4].list;
					n->options = yyvsp[-2].list;
					n->tableSpace = yyvsp[-1].str;
					n->whereClause = yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 585:
#line 3703 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 586:
#line 3704 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 587:
#line 3708 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 588:
#line 3709 "gram.y"
    { yyval.str = DEFAULT_INDEX_TYPE; }
    break;

  case 589:
#line 3712 "gram.y"
    { yyval.list = list_make1(yyvsp[0].ielem); }
    break;

  case 590:
#line 3713 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].ielem); }
    break;

  case 591:
#line 3722 "gram.y"
    {
					yyval.ielem = makeNode(IndexElem);
					yyval.ielem->name = yyvsp[-1].str;
					yyval.ielem->expr = NULL;
					yyval.ielem->opclass = yyvsp[0].list;
				}
    break;

  case 592:
#line 3729 "gram.y"
    {
					yyval.ielem = makeNode(IndexElem);
					yyval.ielem->name = NULL;
					yyval.ielem->expr = yyvsp[-1].node;
					yyval.ielem->opclass = yyvsp[0].list;
				}
    break;

  case 593:
#line 3736 "gram.y"
    {
					yyval.ielem = makeNode(IndexElem);
					yyval.ielem->name = NULL;
					yyval.ielem->expr = yyvsp[-2].node;
					yyval.ielem->opclass = yyvsp[0].list;
				}
    break;

  case 594:
#line 3744 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 595:
#line 3745 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 596:
#line 3746 "gram.y"
    { yyval.list = NIL; }
    break;

  case 597:
#line 3763 "gram.y"
    {
					CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
					n->replace = yyvsp[-7].boolean;
					n->funcname = yyvsp[-5].list;
					n->parameters = yyvsp[-4].list;
					n->returnType = yyvsp[-2].typnam;
					n->options = yyvsp[-1].list;
					n->withClause = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 598:
#line 3775 "gram.y"
    {
					CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
					n->replace = yyvsp[-5].boolean;
					n->funcname = yyvsp[-3].list;
					n->parameters = yyvsp[-2].list;
					n->returnType = NULL;
					n->options = yyvsp[-1].list;
					n->withClause = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 599:
#line 3788 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 600:
#line 3789 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 601:
#line 3792 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 602:
#line 3793 "gram.y"
    { yyval.list = NIL; }
    break;

  case 603:
#line 3797 "gram.y"
    { yyval.list = list_make1(yyvsp[0].fun_param); }
    break;

  case 604:
#line 3798 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].fun_param); }
    break;

  case 605:
#line 3813 "gram.y"
    {
					FunctionParameter *n = makeNode(FunctionParameter);
					n->name = yyvsp[-1].str;
					n->argType = yyvsp[0].typnam;
					n->mode = yyvsp[-2].fun_param_mode;
					yyval.fun_param = n;
				}
    break;

  case 606:
#line 3821 "gram.y"
    {
					FunctionParameter *n = makeNode(FunctionParameter);
					n->name = yyvsp[-2].str;
					n->argType = yyvsp[0].typnam;
					n->mode = yyvsp[-1].fun_param_mode;
					yyval.fun_param = n;
				}
    break;

  case 607:
#line 3829 "gram.y"
    {
					FunctionParameter *n = makeNode(FunctionParameter);
					n->name = yyvsp[-1].str;
					n->argType = yyvsp[0].typnam;
					n->mode = FUNC_PARAM_IN;
					yyval.fun_param = n;
				}
    break;

  case 608:
#line 3837 "gram.y"
    {
					FunctionParameter *n = makeNode(FunctionParameter);
					n->name = NULL;
					n->argType = yyvsp[0].typnam;
					n->mode = yyvsp[-1].fun_param_mode;
					yyval.fun_param = n;
				}
    break;

  case 609:
#line 3845 "gram.y"
    {
					FunctionParameter *n = makeNode(FunctionParameter);
					n->name = NULL;
					n->argType = yyvsp[0].typnam;
					n->mode = FUNC_PARAM_IN;
					yyval.fun_param = n;
				}
    break;

  case 610:
#line 3855 "gram.y"
    { yyval.fun_param_mode = FUNC_PARAM_IN; }
    break;

  case 611:
#line 3856 "gram.y"
    { yyval.fun_param_mode = FUNC_PARAM_OUT; }
    break;

  case 612:
#line 3857 "gram.y"
    { yyval.fun_param_mode = FUNC_PARAM_INOUT; }
    break;

  case 613:
#line 3858 "gram.y"
    { yyval.fun_param_mode = FUNC_PARAM_INOUT; }
    break;

  case 615:
#line 3869 "gram.y"
    {
					/* We can catch over-specified results here if we want to,
					 * but for now better to silently swallow typmod, etc.
					 * - thomas 2000-03-22
					 */
					yyval.typnam = yyvsp[0].typnam;
				}
    break;

  case 616:
#line 3882 "gram.y"
    { yyval.typnam = yyvsp[0].typnam; }
    break;

  case 617:
#line 3884 "gram.y"
    {
					yyval.typnam = makeNode(TypeName);
					yyval.typnam->names = lcons(makeString(yyvsp[-3].str), yyvsp[-2].list);
					yyval.typnam->pct_type = true;
					yyval.typnam->typmod = -1;
					yyval.typnam->location = yylsp[-3];
				}
    break;

  case 618:
#line 3892 "gram.y"
    {
					yyval.typnam = makeNode(TypeName);
					yyval.typnam->names = lcons(makeString(yyvsp[-3].str), yyvsp[-2].list);
					yyval.typnam->pct_type = true;
					yyval.typnam->typmod = -1;
					yyval.typnam->setof = TRUE;
					yyval.typnam->location = yylsp[-3];
				}
    break;

  case 619:
#line 3905 "gram.y"
    { yyval.list = list_make1(yyvsp[0].defelt); }
    break;

  case 620:
#line 3906 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
    break;

  case 621:
#line 3914 "gram.y"
    {
					yyval.defelt = makeDefElem("strict", (Node *)makeInteger(FALSE));
				}
    break;

  case 622:
#line 3918 "gram.y"
    {
					yyval.defelt = makeDefElem("strict", (Node *)makeInteger(TRUE));
				}
    break;

  case 623:
#line 3922 "gram.y"
    {
					yyval.defelt = makeDefElem("strict", (Node *)makeInteger(TRUE));
				}
    break;

  case 624:
#line 3926 "gram.y"
    {
					yyval.defelt = makeDefElem("volatility", (Node *)makeString("immutable"));
				}
    break;

  case 625:
#line 3930 "gram.y"
    {
					yyval.defelt = makeDefElem("volatility", (Node *)makeString("stable"));
				}
    break;

  case 626:
#line 3934 "gram.y"
    {
					yyval.defelt = makeDefElem("volatility", (Node *)makeString("volatile"));
				}
    break;

  case 627:
#line 3938 "gram.y"
    {
					yyval.defelt = makeDefElem("security", (Node *)makeInteger(TRUE));
				}
    break;

  case 628:
#line 3942 "gram.y"
    {
					yyval.defelt = makeDefElem("security", (Node *)makeInteger(FALSE));
				}
    break;

  case 629:
#line 3946 "gram.y"
    {
					yyval.defelt = makeDefElem("security", (Node *)makeInteger(TRUE));
				}
    break;

  case 630:
#line 3950 "gram.y"
    {
					yyval.defelt = makeDefElem("security", (Node *)makeInteger(FALSE));
				}
    break;

  case 631:
#line 3957 "gram.y"
    {
					yyval.defelt = makeDefElem("as", (Node *)yyvsp[0].list);
				}
    break;

  case 632:
#line 3961 "gram.y"
    {
					yyval.defelt = makeDefElem("language", (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 633:
#line 3965 "gram.y"
    {
					yyval.defelt = yyvsp[0].defelt;
				}
    break;

  case 634:
#line 3970 "gram.y"
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
    break;

  case 635:
#line 3972 "gram.y"
    {
					yyval.list = list_make2(makeString(yyvsp[-2].str), makeString(yyvsp[0].str));
				}
    break;

  case 636:
#line 3978 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 637:
#line 3979 "gram.y"
    { yyval.list = NIL; }
    break;

  case 638:
#line 3992 "gram.y"
    {
					AlterFunctionStmt *n = makeNode(AlterFunctionStmt);
					n->func = yyvsp[-2].funwithargs;
					n->actions = yyvsp[-1].list;
					yyval.node = (Node *) n;
				}
    break;

  case 639:
#line 4002 "gram.y"
    { yyval.list = list_make1(yyvsp[0].defelt); }
    break;

  case 640:
#line 4003 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
    break;

  case 643:
#line 4025 "gram.y"
    {
					RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
					n->kind = OBJECT_FUNCTION;
					n->name = yyvsp[-2].list;
					n->args = extractArgTypes(yyvsp[-1].list);
					n->behavior = yyvsp[0].dbehavior;
					n->missing_ok = false;
					yyval.node = (Node *)n;
				}
    break;

  case 644:
#line 4035 "gram.y"
    {
					RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
					n->kind = OBJECT_FUNCTION;
					n->name = yyvsp[-2].list;
					n->args = extractArgTypes(yyvsp[-1].list);
					n->behavior = yyvsp[0].dbehavior;
					n->missing_ok = true;
					yyval.node = (Node *)n;
				}
    break;

  case 645:
#line 4048 "gram.y"
    {
					RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
					n->kind = OBJECT_AGGREGATE;
					n->name = yyvsp[-2].list;
					n->args = yyvsp[-1].list;
					n->behavior = yyvsp[0].dbehavior;
					n->missing_ok = false;
					yyval.node = (Node *)n;
				}
    break;

  case 646:
#line 4058 "gram.y"
    {
					RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
					n->kind = OBJECT_AGGREGATE;
					n->name = yyvsp[-2].list;
					n->args = yyvsp[-1].list;
					n->behavior = yyvsp[0].dbehavior;
					n->missing_ok = true;
					yyval.node = (Node *)n;
				}
    break;

  case 647:
#line 4071 "gram.y"
    {
					RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
					n->kind = OBJECT_OPERATOR;
					n->name = yyvsp[-4].list;
					n->args = yyvsp[-2].list;
					n->behavior = yyvsp[0].dbehavior;
					n->missing_ok = false;
					yyval.node = (Node *)n;
				}
    break;

  case 648:
#line 4081 "gram.y"
    {
					RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
					n->kind = OBJECT_OPERATOR;
					n->name = yyvsp[-4].list;
					n->args = yyvsp[-2].list;
					n->behavior = yyvsp[0].dbehavior;
					n->missing_ok = true;
					yyval.node = (Node *)n;
				}
    break;

  case 649:
#line 4094 "gram.y"
    {
				   ereport(ERROR,
						   (errcode(ERRCODE_SYNTAX_ERROR),
							errmsg("missing argument"),
							errhint("Use NONE to denote the missing argument of a unary operator.")));
				}
    break;

  case 650:
#line 4101 "gram.y"
    { yyval.list = list_make2(yyvsp[-2].typnam, yyvsp[0].typnam); }
    break;

  case 651:
#line 4103 "gram.y"
    { yyval.list = list_make2(NULL, yyvsp[0].typnam); }
    break;

  case 652:
#line 4105 "gram.y"
    { yyval.list = list_make2(yyvsp[-2].typnam, NULL); }
    break;

  case 653:
#line 4110 "gram.y"
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
    break;

  case 654:
#line 4112 "gram.y"
    { yyval.list = lcons(makeString(yyvsp[-2].str), yyvsp[0].list); }
    break;

  case 655:
#line 4124 "gram.y"
    {
					CreateCastStmt *n = makeNode(CreateCastStmt);
					n->sourcetype = yyvsp[-7].typnam;
					n->targettype = yyvsp[-5].typnam;
					n->func = yyvsp[-1].funwithargs;
					n->context = (CoercionContext) yyvsp[0].ival;
					yyval.node = (Node *)n;
				}
    break;

  case 656:
#line 4134 "gram.y"
    {
					CreateCastStmt *n = makeNode(CreateCastStmt);
					n->sourcetype = yyvsp[-6].typnam;
					n->targettype = yyvsp[-4].typnam;
					n->func = NULL;
					n->context = (CoercionContext) yyvsp[0].ival;
					yyval.node = (Node *)n;
				}
    break;

  case 657:
#line 4144 "gram.y"
    { yyval.ival = COERCION_IMPLICIT; }
    break;

  case 658:
#line 4145 "gram.y"
    { yyval.ival = COERCION_ASSIGNMENT; }
    break;

  case 659:
#line 4146 "gram.y"
    { yyval.ival = COERCION_EXPLICIT; }
    break;

  case 660:
#line 4151 "gram.y"
    {
					DropCastStmt *n = makeNode(DropCastStmt);
					n->sourcetype = yyvsp[-4].typnam;
					n->targettype = yyvsp[-2].typnam;
					n->behavior = yyvsp[0].dbehavior;
					n->missing_ok = yyvsp[-6].boolean;
					yyval.node = (Node *)n;
				}
    break;

  case 661:
#line 4161 "gram.y"
    { yyval.boolean = true; }
    break;

  case 662:
#line 4162 "gram.y"
    { yyval.boolean = false; }
    break;

  case 663:
#line 4177 "gram.y"
    {
					ReindexStmt *n = makeNode(ReindexStmt);
					n->kind = yyvsp[-2].objtype;
					n->relation = yyvsp[-1].range;
					n->name = NULL;
					yyval.node = (Node *)n;
				}
    break;

  case 664:
#line 4185 "gram.y"
    {
					ReindexStmt *n = makeNode(ReindexStmt);
					n->kind = OBJECT_DATABASE;
					n->name = yyvsp[-1].str;
					n->relation = NULL;
					n->do_system = true;
					n->do_user = false;
					yyval.node = (Node *)n;
				}
    break;

  case 665:
#line 4195 "gram.y"
    {
					ReindexStmt *n = makeNode(ReindexStmt);
					n->kind = OBJECT_DATABASE;
					n->name = yyvsp[-1].str;
					n->relation = NULL;
					n->do_system = true;
					n->do_user = true;
					yyval.node = (Node *)n;
				}
    break;

  case 666:
#line 4207 "gram.y"
    { yyval.objtype = OBJECT_INDEX; }
    break;

  case 667:
#line 4208 "gram.y"
    { yyval.objtype = OBJECT_TABLE; }
    break;

  case 668:
#line 4211 "gram.y"
    {  yyval.boolean = TRUE; }
    break;

  case 669:
#line 4212 "gram.y"
    {  yyval.boolean = FALSE; }
    break;

  case 670:
#line 4223 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_AGGREGATE;
					n->object = yyvsp[-4].list;
					n->objarg = yyvsp[-3].list;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 671:
#line 4232 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_CONVERSION;
					n->object = yyvsp[-3].list;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 672:
#line 4240 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_DATABASE;
					n->subname = yyvsp[-3].str;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 673:
#line 4248 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_FUNCTION;
					n->object = yyvsp[-4].list;
					n->objarg = extractArgTypes(yyvsp[-3].list);
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 674:
#line 4257 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_ROLE;
					n->subname = yyvsp[-3].str;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 675:
#line 4265 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_LANGUAGE;
					n->subname = yyvsp[-3].str;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 676:
#line 4273 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_OPCLASS;
					n->object = yyvsp[-5].list;
					n->subname = yyvsp[-3].str;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 677:
#line 4282 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_SCHEMA;
					n->subname = yyvsp[-3].str;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 678:
#line 4290 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_TABLE;
					n->relation = yyvsp[-3].range;
					n->subname = NULL;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 679:
#line 4299 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_INDEX;
					n->relation = yyvsp[-3].range;
					n->subname = NULL;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 680:
#line 4308 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_COLUMN;
					n->relation = yyvsp[-5].range;
					n->subname = yyvsp[-2].str;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 681:
#line 4317 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_TRIGGER;
					n->relation = yyvsp[-3].range;
					n->subname = yyvsp[-5].str;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 682:
#line 4326 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_ROLE;
					n->subname = yyvsp[-3].str;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 683:
#line 4334 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_ROLE;
					n->subname = yyvsp[-3].str;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 684:
#line 4342 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_TABLESPACE;
					n->subname = yyvsp[-3].str;
					n->newname = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 685:
#line 4351 "gram.y"
    { yyval.ival = COLUMN; }
    break;

  case 686:
#line 4352 "gram.y"
    { yyval.ival = 0; }
    break;

  case 687:
#line 4363 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_AGGREGATE;
					n->object = yyvsp[-4].list;
					n->objarg = yyvsp[-3].list;
					n->newschema = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 688:
#line 4372 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_DOMAIN;
					n->object = yyvsp[-3].list;
					n->newschema = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 689:
#line 4380 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_FUNCTION;
					n->object = yyvsp[-4].list;
					n->objarg = extractArgTypes(yyvsp[-3].list);
					n->newschema = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 690:
#line 4389 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_SEQUENCE;
					n->relation = yyvsp[-3].range;
					n->newschema = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 691:
#line 4397 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_TABLE;
					n->relation = yyvsp[-3].range;
					n->newschema = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 692:
#line 4405 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_TYPE;
					n->object = yyvsp[-3].list;
					n->newschema = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 693:
#line 4421 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_AGGREGATE;
					n->object = yyvsp[-4].list;
					n->objarg = yyvsp[-3].list;
					n->newowner = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 694:
#line 4430 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_CONVERSION;
					n->object = yyvsp[-3].list;
					n->newowner = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 695:
#line 4438 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_DATABASE;
					n->object = list_make1(yyvsp[-3].str);
					n->newowner = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 696:
#line 4446 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_DOMAIN;
					n->object = yyvsp[-3].list;
					n->newowner = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 697:
#line 4454 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_FUNCTION;
					n->object = yyvsp[-4].list;
					n->objarg = extractArgTypes(yyvsp[-3].list);
					n->newowner = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 698:
#line 4463 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_OPERATOR;
					n->object = yyvsp[-6].list;
					n->objarg = yyvsp[-4].list;
					n->newowner = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 699:
#line 4472 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_OPCLASS;
					n->object = yyvsp[-5].list;
					n->addname = yyvsp[-3].str;
					n->newowner = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 700:
#line 4481 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_SCHEMA;
					n->object = list_make1(yyvsp[-3].str);
					n->newowner = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 701:
#line 4489 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_TYPE;
					n->object = yyvsp[-3].list;
					n->newowner = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 702:
#line 4497 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_TABLESPACE;
					n->object = list_make1(yyvsp[-3].str);
					n->newowner = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 703:
#line 4514 "gram.y"
    { QueryIsRule=TRUE; }
    break;

  case 704:
#line 4517 "gram.y"
    {
					RuleStmt *n = makeNode(RuleStmt);
					n->replace = yyvsp[-12].boolean;
					n->relation = yyvsp[-4].range;
					n->rulename = yyvsp[-10].str;
					n->whereClause = yyvsp[-3].node;
					n->event = yyvsp[-6].ival;
					n->instead = yyvsp[-1].boolean;
					n->actions = yyvsp[0].list;
					yyval.node = (Node *)n;
					QueryIsRule=FALSE;
				}
    break;

  case 705:
#line 4532 "gram.y"
    { yyval.list = NIL; }
    break;

  case 706:
#line 4533 "gram.y"
    { yyval.list = list_make1(yyvsp[0].node); }
    break;

  case 707:
#line 4534 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 708:
#line 4540 "gram.y"
    { if (yyvsp[0].node != NULL)
					yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
				  else
					yyval.list = yyvsp[-2].list;
				}
    break;

  case 709:
#line 4546 "gram.y"
    { if (yyvsp[0].node != NULL)
					yyval.list = list_make1(yyvsp[0].node);
				  else
					yyval.list = NIL;
				}
    break;

  case 715:
#line 4562 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 716:
#line 4563 "gram.y"
    { yyval.node = NULL; }
    break;

  case 717:
#line 4566 "gram.y"
    { yyval.ival = CMD_SELECT; }
    break;

  case 718:
#line 4567 "gram.y"
    { yyval.ival = CMD_UPDATE; }
    break;

  case 719:
#line 4568 "gram.y"
    { yyval.ival = CMD_DELETE; }
    break;

  case 720:
#line 4569 "gram.y"
    { yyval.ival = CMD_INSERT; }
    break;

  case 721:
#line 4573 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 722:
#line 4574 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 723:
#line 4575 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 724:
#line 4581 "gram.y"
    {
					DropPropertyStmt *n = makeNode(DropPropertyStmt);
					n->relation = yyvsp[-1].range;
					n->property = yyvsp[-3].str;
					n->behavior = yyvsp[0].dbehavior;
					n->removeType = OBJECT_RULE;
					n->missing_ok = false;
					yyval.node = (Node *) n;
				}
    break;

  case 725:
#line 4591 "gram.y"
    {
					DropPropertyStmt *n = makeNode(DropPropertyStmt);
					n->relation = yyvsp[-1].range;
					n->property = yyvsp[-3].str;
					n->behavior = yyvsp[0].dbehavior;
					n->removeType = OBJECT_RULE;
					n->missing_ok = true;
					yyval.node = (Node *) n;
				}
    break;

  case 726:
#line 4612 "gram.y"
    {
					NotifyStmt *n = makeNode(NotifyStmt);
					n->relation = yyvsp[0].range;
					yyval.node = (Node *)n;
				}
    break;

  case 727:
#line 4620 "gram.y"
    {
					ListenStmt *n = makeNode(ListenStmt);
					n->relation = yyvsp[0].range;
					yyval.node = (Node *)n;
				}
    break;

  case 728:
#line 4629 "gram.y"
    {
					UnlistenStmt *n = makeNode(UnlistenStmt);
					n->relation = yyvsp[0].range;
					yyval.node = (Node *)n;
				}
    break;

  case 729:
#line 4635 "gram.y"
    {
					UnlistenStmt *n = makeNode(UnlistenStmt);
					n->relation = makeNode(RangeVar);
					n->relation->relname = "*";
					n->relation->schemaname = NULL;
					yyval.node = (Node *)n;
				}
    break;

  case 730:
#line 4656 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_ROLLBACK;
					n->options = NIL;
					yyval.node = (Node *)n;
				}
    break;

  case 731:
#line 4663 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_BEGIN;
					n->options = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 732:
#line 4670 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_START;
					n->options = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 733:
#line 4677 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_COMMIT;
					n->options = NIL;
					yyval.node = (Node *)n;
				}
    break;

  case 734:
#line 4684 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_COMMIT;
					n->options = NIL;
					yyval.node = (Node *)n;
				}
    break;

  case 735:
#line 4691 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_ROLLBACK;
					n->options = NIL;
					yyval.node = (Node *)n;
				}
    break;

  case 736:
#line 4698 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_SAVEPOINT;
					n->options = list_make1(makeDefElem("savepoint_name",
														(Node *)makeString(yyvsp[0].str)));
					yyval.node = (Node *)n;
				}
    break;

  case 737:
#line 4706 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_RELEASE;
					n->options = list_make1(makeDefElem("savepoint_name",
														(Node *)makeString(yyvsp[0].str)));
					yyval.node = (Node *)n;
				}
    break;

  case 738:
#line 4714 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_RELEASE;
					n->options = list_make1(makeDefElem("savepoint_name",
														(Node *)makeString(yyvsp[0].str)));
					yyval.node = (Node *)n;
				}
    break;

  case 739:
#line 4722 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_ROLLBACK_TO;
					n->options = list_make1(makeDefElem("savepoint_name",
														(Node *)makeString(yyvsp[0].str)));
					yyval.node = (Node *)n;
				}
    break;

  case 740:
#line 4730 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_ROLLBACK_TO;
					n->options = list_make1(makeDefElem("savepoint_name",
														(Node *)makeString(yyvsp[0].str)));
					yyval.node = (Node *)n;
				}
    break;

  case 741:
#line 4738 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_PREPARE;
					n->gid = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 742:
#line 4745 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_COMMIT_PREPARED;
					n->gid = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 743:
#line 4752 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_ROLLBACK_PREPARED;
					n->gid = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 744:
#line 4760 "gram.y"
    {}
    break;

  case 745:
#line 4761 "gram.y"
    {}
    break;

  case 746:
#line 4762 "gram.y"
    {}
    break;

  case 747:
#line 4767 "gram.y"
    { yyval.defelt = makeDefElem("transaction_isolation",
									   makeStringConst(yyvsp[0].str, NULL)); }
    break;

  case 748:
#line 4770 "gram.y"
    { yyval.defelt = makeDefElem("transaction_read_only",
									   makeIntConst(TRUE)); }
    break;

  case 749:
#line 4773 "gram.y"
    { yyval.defelt = makeDefElem("transaction_read_only",
									   makeIntConst(FALSE)); }
    break;

  case 750:
#line 4780 "gram.y"
    { yyval.list = list_make1(yyvsp[0].defelt); }
    break;

  case 751:
#line 4782 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].defelt); }
    break;

  case 752:
#line 4784 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
    break;

  case 754:
#line 4790 "gram.y"
    { yyval.list = NIL; }
    break;

  case 755:
#line 4804 "gram.y"
    {
					ViewStmt *n = makeNode(ViewStmt);
					n->replace = false;
					n->view = yyvsp[-4].range;
					n->view->istemp = yyvsp[-6].boolean;
					n->aliases = yyvsp[-3].list;
					n->query = (Query *) yyvsp[-1].node;
					yyval.node = (Node *) n;
				}
    break;

  case 756:
#line 4815 "gram.y"
    {
					ViewStmt *n = makeNode(ViewStmt);
					n->replace = true;
					n->view = yyvsp[-4].range;
					n->view->istemp = yyvsp[-6].boolean;
					n->aliases = yyvsp[-3].list;
					n->query = (Query *) yyvsp[-1].node;
					yyval.node = (Node *) n;
				}
    break;

  case 757:
#line 4832 "gram.y"
    {
					ereport(ERROR,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("WITH CHECK OPTION is not implemented")));
				}
    break;

  case 758:
#line 4838 "gram.y"
    {
					ereport(ERROR,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("WITH CHECK OPTION is not implemented")));
				}
    break;

  case 759:
#line 4844 "gram.y"
    {
					ereport(ERROR,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("WITH CHECK OPTION is not implemented")));
				}
    break;

  case 760:
#line 4849 "gram.y"
    { yyval.list = NIL; }
    break;

  case 761:
#line 4860 "gram.y"
    {
					LoadStmt *n = makeNode(LoadStmt);
					n->filename = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 762:
#line 4876 "gram.y"
    {
					CreatedbStmt *n = makeNode(CreatedbStmt);
					n->dbname = yyvsp[-2].str;
					n->options = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 763:
#line 4885 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
    break;

  case 764:
#line 4886 "gram.y"
    { yyval.list = NIL; }
    break;

  case 765:
#line 4891 "gram.y"
    {
					yyval.defelt = makeDefElem("tablespace", (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 766:
#line 4895 "gram.y"
    {
					yyval.defelt = makeDefElem("tablespace", NULL);
				}
    break;

  case 767:
#line 4899 "gram.y"
    {
					yyval.defelt = makeDefElem("location", (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 768:
#line 4903 "gram.y"
    {
					yyval.defelt = makeDefElem("location", NULL);
				}
    break;

  case 769:
#line 4907 "gram.y"
    {
					yyval.defelt = makeDefElem("template", (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 770:
#line 4911 "gram.y"
    {
					yyval.defelt = makeDefElem("template", NULL);
				}
    break;

  case 771:
#line 4915 "gram.y"
    {
					yyval.defelt = makeDefElem("encoding", (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 772:
#line 4919 "gram.y"
    {
					yyval.defelt = makeDefElem("encoding", (Node *)makeInteger(yyvsp[0].ival));
				}
    break;

  case 773:
#line 4923 "gram.y"
    {
					yyval.defelt = makeDefElem("encoding", NULL);
				}
    break;

  case 774:
#line 4927 "gram.y"
    {
					yyval.defelt = makeDefElem("connectionlimit", (Node *)makeInteger(yyvsp[0].ival));
				}
    break;

  case 775:
#line 4931 "gram.y"
    {
					yyval.defelt = makeDefElem("owner", (Node *)makeString(yyvsp[0].str));
				}
    break;

  case 776:
#line 4935 "gram.y"
    {
					yyval.defelt = makeDefElem("owner", NULL);
				}
    break;

  case 777:
#line 4944 "gram.y"
    {}
    break;

  case 778:
#line 4945 "gram.y"
    {}
    break;

  case 779:
#line 4957 "gram.y"
    {
					AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
					n->dbname = yyvsp[-2].str;
					n->options = yyvsp[0].list;
					yyval.node = (Node *)n;
				 }
    break;

  case 780:
#line 4967 "gram.y"
    {
					AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt);
					n->dbname = yyvsp[-2].str;
					n->variable = yyvsp[0].vsetstmt->name;
					n->value = yyvsp[0].vsetstmt->args;
					yyval.node = (Node *)n;
				}
    break;

  case 781:
#line 4975 "gram.y"
    {
					AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt);
					n->dbname = yyvsp[-1].str;
					n->variable = ((VariableResetStmt *)yyvsp[0].node)->name;
					n->value = NIL;
					yyval.node = (Node *)n;
				}
    break;

  case 782:
#line 4986 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
    break;

  case 783:
#line 4987 "gram.y"
    { yyval.list = NIL; }
    break;

  case 784:
#line 4992 "gram.y"
    {
					yyval.defelt = makeDefElem("connectionlimit", (Node *)makeInteger(yyvsp[0].ival));
				}
    break;

  case 785:
#line 5006 "gram.y"
    {
					DropdbStmt *n = makeNode(DropdbStmt);
					n->dbname = yyvsp[0].str;
					n->missing_ok = FALSE;
					yyval.node = (Node *)n;
				}
    break;

  case 786:
#line 5013 "gram.y"
    {
					DropdbStmt *n = makeNode(DropdbStmt);
					n->dbname = yyvsp[0].str;
					n->missing_ok = TRUE;
					yyval.node = (Node *)n;
				}
    break;

  case 787:
#line 5030 "gram.y"
    {
					CreateDomainStmt *n = makeNode(CreateDomainStmt);
					n->domainname = yyvsp[-3].list;
					n->typename = yyvsp[-1].typnam;
					n->constraints = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 788:
#line 5042 "gram.y"
    {
					AlterDomainStmt *n = makeNode(AlterDomainStmt);
					n->subtype = 'T';
					n->typename = yyvsp[-1].list;
					n->def = yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 789:
#line 5051 "gram.y"
    {
					AlterDomainStmt *n = makeNode(AlterDomainStmt);
					n->subtype = 'N';
					n->typename = yyvsp[-3].list;
					yyval.node = (Node *)n;
				}
    break;

  case 790:
#line 5059 "gram.y"
    {
					AlterDomainStmt *n = makeNode(AlterDomainStmt);
					n->subtype = 'O';
					n->typename = yyvsp[-3].list;
					yyval.node = (Node *)n;
				}
    break;

  case 791:
#line 5067 "gram.y"
    {
					AlterDomainStmt *n = makeNode(AlterDomainStmt);
					n->subtype = 'C';
					n->typename = yyvsp[-2].list;
					n->def = yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 792:
#line 5076 "gram.y"
    {
					AlterDomainStmt *n = makeNode(AlterDomainStmt);
					n->subtype = 'X';
					n->typename = yyvsp[-4].list;
					n->name = yyvsp[-1].str;
					n->behavior = yyvsp[0].dbehavior;
					yyval.node = (Node *)n;
				}
    break;

  case 793:
#line 5086 "gram.y"
    {}
    break;

  case 794:
#line 5087 "gram.y"
    {}
    break;

  case 795:
#line 5103 "gram.y"
    {
			  CreateConversionStmt *n = makeNode(CreateConversionStmt);
			  n->conversion_name = yyvsp[-6].list;
			  n->for_encoding_name = yyvsp[-4].str;
			  n->to_encoding_name = yyvsp[-2].str;
			  n->func_name = yyvsp[0].list;
			  n->def = yyvsp[-8].boolean;
			  yyval.node = (Node *)n;
			}
    break;

  case 796:
#line 5125 "gram.y"
    {
				   ClusterStmt *n = makeNode(ClusterStmt);
				   n->relation = yyvsp[0].range;
				   n->indexname = yyvsp[-2].str;
				   yyval.node = (Node*)n;
				}
    break;

  case 797:
#line 5132 "gram.y"
    {
			       ClusterStmt *n = makeNode(ClusterStmt);
				   n->relation = yyvsp[0].range;
				   n->indexname = NULL;
				   yyval.node = (Node*)n;
				}
    break;

  case 798:
#line 5139 "gram.y"
    {
				   ClusterStmt *n = makeNode(ClusterStmt);
				   n->relation = NULL;
				   n->indexname = NULL;
				   yyval.node = (Node*)n;
				}
    break;

  case 799:
#line 5156 "gram.y"
    {
					VacuumStmt *n = makeNode(VacuumStmt);
					n->vacuum = true;
					n->analyze = false;
					n->full = yyvsp[-2].boolean;
					n->freeze_min_age = yyvsp[-1].boolean ? 0 : -1;
					n->verbose = yyvsp[0].boolean;
					n->relation = NULL;
					n->va_cols = NIL;
					yyval.node = (Node *)n;
				}
    break;

  case 800:
#line 5168 "gram.y"
    {
					VacuumStmt *n = makeNode(VacuumStmt);
					n->vacuum = true;
					n->analyze = false;
					n->full = yyvsp[-3].boolean;
					n->freeze_min_age = yyvsp[-2].boolean ? 0 : -1;
					n->verbose = yyvsp[-1].boolean;
					n->relation = yyvsp[0].range;
					n->va_cols = NIL;
					yyval.node = (Node *)n;
				}
    break;

  case 801:
#line 5180 "gram.y"
    {
					VacuumStmt *n = (VacuumStmt *) yyvsp[0].node;
					n->vacuum = true;
					n->full = yyvsp[-3].boolean;
					n->freeze_min_age = yyvsp[-2].boolean ? 0 : -1;
					n->verbose |= yyvsp[-1].boolean;
					yyval.node = (Node *)n;
				}
    break;

  case 802:
#line 5192 "gram.y"
    {
					VacuumStmt *n = makeNode(VacuumStmt);
					n->vacuum = false;
					n->analyze = true;
					n->full = false;
					n->freeze_min_age = -1;
					n->verbose = yyvsp[0].boolean;
					n->relation = NULL;
					n->va_cols = NIL;
					yyval.node = (Node *)n;
				}
    break;

  case 803:
#line 5204 "gram.y"
    {
					VacuumStmt *n = makeNode(VacuumStmt);
					n->vacuum = false;
					n->analyze = true;
					n->full = false;
					n->freeze_min_age = -1;
					n->verbose = yyvsp[-2].boolean;
					n->relation = yyvsp[-1].range;
					n->va_cols = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 804:
#line 5218 "gram.y"
    {}
    break;

  case 805:
#line 5219 "gram.y"
    {}
    break;

  case 806:
#line 5223 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 807:
#line 5224 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 808:
#line 5227 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 809:
#line 5228 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 810:
#line 5231 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 811:
#line 5232 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 812:
#line 5236 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 813:
#line 5237 "gram.y"
    { yyval.list = NIL; }
    break;

  case 814:
#line 5249 "gram.y"
    {
					ExplainStmt *n = makeNode(ExplainStmt);
					n->analyze = yyvsp[-2].boolean;
					n->verbose = yyvsp[-1].boolean;
					n->query = (Query*)yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 821:
#line 5268 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 822:
#line 5269 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 823:
#line 5280 "gram.y"
    {
					PrepareStmt *n = makeNode(PrepareStmt);
					n->name = yyvsp[-3].str;
					n->argtypes = yyvsp[-2].list;
					n->query = (Query *) yyvsp[0].node;
					yyval.node = (Node *) n;
				}
    break;

  case 824:
#line 5289 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 825:
#line 5290 "gram.y"
    { yyval.list = NIL; }
    break;

  case 826:
#line 5293 "gram.y"
    { yyval.list = list_make1(yyvsp[0].typnam); }
    break;

  case 827:
#line 5295 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].typnam); }
    break;

  case 832:
#line 5313 "gram.y"
    {
					ExecuteStmt *n = makeNode(ExecuteStmt);
					n->name = yyvsp[-1].str;
					n->params = yyvsp[0].list;
					n->into = NULL;
					yyval.node = (Node *) n;
				}
    break;

  case 833:
#line 5323 "gram.y"
    {
					ExecuteStmt *n = makeNode(ExecuteStmt);
					n->name = yyvsp[-1].str;
					n->params = yyvsp[0].list;
					yyvsp[-8].range->istemp = yyvsp[-10].boolean;
					n->into = yyvsp[-8].range;
					n->intoOptions = yyvsp[-6].list;
					n->into_on_commit = yyvsp[-5].oncommit;
					n->into_tbl_space = yyvsp[-4].str;
					if (yyvsp[-7].list)
						ereport(ERROR,
								(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
								 errmsg("column name list not allowed in CREATE TABLE / AS EXECUTE")));
					/* ... because it's not implemented, but it could be */
					yyval.node = (Node *) n;
				}
    break;

  case 834:
#line 5341 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 835:
#line 5342 "gram.y"
    { yyval.list = NIL; }
    break;

  case 836:
#line 5353 "gram.y"
    {
						DeallocateStmt *n = makeNode(DeallocateStmt);
						n->name = yyvsp[0].str;
						yyval.node = (Node *) n;
					}
    break;

  case 837:
#line 5359 "gram.y"
    {
						DeallocateStmt *n = makeNode(DeallocateStmt);
						n->name = yyvsp[0].str;
						yyval.node = (Node *) n;
					}
    break;

  case 838:
#line 5375 "gram.y"
    {
					yyvsp[-1].istmt->relation = yyvsp[-2].range;
					yyvsp[-1].istmt->returningList = yyvsp[0].list;
					yyval.node = (Node *) yyvsp[-1].istmt;
				}
    break;

  case 839:
#line 5384 "gram.y"
    {
					yyval.istmt = makeNode(InsertStmt);
					yyval.istmt->cols = NIL;
					yyval.istmt->selectStmt = yyvsp[0].node;
				}
    break;

  case 840:
#line 5390 "gram.y"
    {
					yyval.istmt = makeNode(InsertStmt);
					yyval.istmt->cols = yyvsp[-2].list;
					yyval.istmt->selectStmt = yyvsp[0].node;
				}
    break;

  case 841:
#line 5396 "gram.y"
    {
					yyval.istmt = makeNode(InsertStmt);
					yyval.istmt->cols = NIL;
					yyval.istmt->selectStmt = NULL;
				}
    break;

  case 842:
#line 5405 "gram.y"
    { yyval.list = list_make1(yyvsp[0].target); }
    break;

  case 843:
#line 5407 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].target); }
    break;

  case 844:
#line 5412 "gram.y"
    {
					yyval.target = makeNode(ResTarget);
					yyval.target->name = yyvsp[-1].str;
					yyval.target->indirection = yyvsp[0].list;
					yyval.target->val = NULL;
					yyval.target->location = yylsp[-1];
				}
    break;

  case 845:
#line 5422 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 846:
#line 5423 "gram.y"
    { yyval.list = NIL; }
    break;

  case 847:
#line 5436 "gram.y"
    {
					DeleteStmt *n = makeNode(DeleteStmt);
					n->relation = yyvsp[-3].range;
					n->usingClause = yyvsp[-2].list;
					n->whereClause = yyvsp[-1].node;
					n->returningList = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 848:
#line 5447 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 849:
#line 5448 "gram.y"
    { yyval.list = NIL; }
    break;

  case 850:
#line 5452 "gram.y"
    {
					LockStmt *n = makeNode(LockStmt);

					n->relations = yyvsp[-2].list;
					n->mode = yyvsp[-1].ival;
					n->nowait = yyvsp[0].boolean;
					yyval.node = (Node *)n;
				}
    break;

  case 851:
#line 5462 "gram.y"
    { yyval.ival = yyvsp[-1].ival; }
    break;

  case 852:
#line 5463 "gram.y"
    { yyval.ival = AccessExclusiveLock; }
    break;

  case 853:
#line 5466 "gram.y"
    { yyval.ival = AccessShareLock; }
    break;

  case 854:
#line 5467 "gram.y"
    { yyval.ival = RowShareLock; }
    break;

  case 855:
#line 5468 "gram.y"
    { yyval.ival = RowExclusiveLock; }
    break;

  case 856:
#line 5469 "gram.y"
    { yyval.ival = ShareUpdateExclusiveLock; }
    break;

  case 857:
#line 5470 "gram.y"
    { yyval.ival = ShareLock; }
    break;

  case 858:
#line 5471 "gram.y"
    { yyval.ival = ShareRowExclusiveLock; }
    break;

  case 859:
#line 5472 "gram.y"
    { yyval.ival = ExclusiveLock; }
    break;

  case 860:
#line 5473 "gram.y"
    { yyval.ival = AccessExclusiveLock; }
    break;

  case 861:
#line 5476 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 862:
#line 5477 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 863:
#line 5493 "gram.y"
    {
					UpdateStmt *n = makeNode(UpdateStmt);
					n->relation = yyvsp[-5].range;
					n->targetList = yyvsp[-3].list;
					n->fromClause = yyvsp[-2].list;
					n->whereClause = yyvsp[-1].node;
					n->returningList = yyvsp[0].list;
					yyval.node = (Node *)n;
				}
    break;

  case 864:
#line 5505 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 865:
#line 5506 "gram.y"
    { yyval.list = list_concat(yyvsp[-2].list,yyvsp[0].list); }
    break;

  case 866:
#line 5510 "gram.y"
    { yyval.list = list_make1(yyvsp[0].target); }
    break;

  case 867:
#line 5511 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 868:
#line 5516 "gram.y"
    {
					yyval.target = yyvsp[-2].target;
					yyval.target->val = (Node *) yyvsp[0].node;
				}
    break;

  case 869:
#line 5524 "gram.y"
    {
					ListCell *col_cell;
					ListCell *val_cell;

					/*
					 * Break the ctext_row apart, merge individual expressions
					 * into the destination ResTargets.  XXX this approach
					 * cannot work for general row expressions as sources.
					 */
					if (list_length(yyvsp[-3].list) != list_length(yyvsp[0].list))
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("number of columns does not match number of values")));
					forboth(col_cell, yyvsp[-3].list, val_cell, yyvsp[0].list)
					{
						ResTarget *res_col = (ResTarget *) lfirst(col_cell);
						Node *res_val = (Node *) lfirst(val_cell);

						res_col->val = res_val;
					}
				    
					yyval.list = yyvsp[-3].list;
				}
    break;

  case 870:
#line 5551 "gram.y"
    {
					yyval.target = makeNode(ResTarget);
					yyval.target->name = yyvsp[-1].str;
					yyval.target->indirection = yyvsp[0].list;
					yyval.target->val = NULL;	/* upper production sets this */
					yyval.target->location = yylsp[-1];
				}
    break;

  case 871:
#line 5561 "gram.y"
    { yyval.list = list_make1(yyvsp[0].target); }
    break;

  case 872:
#line 5562 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list,yyvsp[0].target); }
    break;

  case 873:
#line 5573 "gram.y"
    {
					DeclareCursorStmt *n = makeNode(DeclareCursorStmt);
					n->portalname = yyvsp[-5].str;
					n->options = yyvsp[-4].ival;
					n->query = yyvsp[0].node;
					if (yyvsp[-2].boolean)
						n->options |= CURSOR_OPT_HOLD;
					yyval.node = (Node *)n;
				}
    break;

  case 874:
#line 5584 "gram.y"
    { yyval.ival = 0; }
    break;

  case 875:
#line 5585 "gram.y"
    { yyval.ival = yyvsp[-2].ival | CURSOR_OPT_NO_SCROLL; }
    break;

  case 876:
#line 5586 "gram.y"
    { yyval.ival = yyvsp[-1].ival | CURSOR_OPT_SCROLL; }
    break;

  case 877:
#line 5587 "gram.y"
    { yyval.ival = yyvsp[-1].ival | CURSOR_OPT_BINARY; }
    break;

  case 878:
#line 5588 "gram.y"
    { yyval.ival = yyvsp[-1].ival | CURSOR_OPT_INSENSITIVE; }
    break;

  case 879:
#line 5591 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 880:
#line 5592 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 881:
#line 5593 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 884:
#line 5646 "gram.y"
    { yyval.node = yyvsp[-1].node; }
    break;

  case 885:
#line 5647 "gram.y"
    { yyval.node = yyvsp[-1].node; }
    break;

  case 886:
#line 5657 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 887:
#line 5659 "gram.y"
    {
					insertSelectOptions((SelectStmt *) yyvsp[-1].node, yyvsp[0].list, NIL,
										NULL, NULL);
					yyval.node = yyvsp[-1].node;
				}
    break;

  case 888:
#line 5665 "gram.y"
    {
					insertSelectOptions((SelectStmt *) yyvsp[-3].node, yyvsp[-2].list, yyvsp[-1].list,
										list_nth(yyvsp[0].list, 0), list_nth(yyvsp[0].list, 1));
					yyval.node = yyvsp[-3].node;
				}
    break;

  case 889:
#line 5671 "gram.y"
    {
					insertSelectOptions((SelectStmt *) yyvsp[-3].node, yyvsp[-2].list, yyvsp[0].list,
										list_nth(yyvsp[-1].list, 0), list_nth(yyvsp[-1].list, 1));
					yyval.node = yyvsp[-3].node;
				}
    break;

  case 890:
#line 5679 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 891:
#line 5680 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 892:
#line 5710 "gram.y"
    {
					SelectStmt *n = makeNode(SelectStmt);
					n->distinctClause = yyvsp[-6].list;
					n->targetList = yyvsp[-5].list;
					n->into = yyvsp[-4].range;
					n->intoColNames = NIL;
					n->fromClause = yyvsp[-3].list;
					n->whereClause = yyvsp[-2].node;
					n->groupClause = yyvsp[-1].list;
					n->havingClause = yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 893:
#line 5722 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 894:
#line 5724 "gram.y"
    {
					yyval.node = makeSetOp(SETOP_UNION, yyvsp[-1].boolean, yyvsp[-3].node, yyvsp[0].node);
				}
    break;

  case 895:
#line 5728 "gram.y"
    {
					yyval.node = makeSetOp(SETOP_INTERSECT, yyvsp[-1].boolean, yyvsp[-3].node, yyvsp[0].node);
				}
    break;

  case 896:
#line 5732 "gram.y"
    {
					yyval.node = makeSetOp(SETOP_EXCEPT, yyvsp[-1].boolean, yyvsp[-3].node, yyvsp[0].node);
				}
    break;

  case 897:
#line 5738 "gram.y"
    { yyval.range = yyvsp[0].range; }
    break;

  case 898:
#line 5739 "gram.y"
    { yyval.range = NULL; }
    break;

  case 899:
#line 5748 "gram.y"
    {
					yyval.range = yyvsp[0].range;
					yyval.range->istemp = true;
				}
    break;

  case 900:
#line 5753 "gram.y"
    {
					yyval.range = yyvsp[0].range;
					yyval.range->istemp = true;
				}
    break;

  case 901:
#line 5758 "gram.y"
    {
					yyval.range = yyvsp[0].range;
					yyval.range->istemp = true;
				}
    break;

  case 902:
#line 5763 "gram.y"
    {
					yyval.range = yyvsp[0].range;
					yyval.range->istemp = true;
				}
    break;

  case 903:
#line 5768 "gram.y"
    {
					yyval.range = yyvsp[0].range;
					yyval.range->istemp = true;
				}
    break;

  case 904:
#line 5773 "gram.y"
    {
					yyval.range = yyvsp[0].range;
					yyval.range->istemp = true;
				}
    break;

  case 905:
#line 5778 "gram.y"
    {
					yyval.range = yyvsp[0].range;
					yyval.range->istemp = false;
				}
    break;

  case 906:
#line 5783 "gram.y"
    {
					yyval.range = yyvsp[0].range;
					yyval.range->istemp = false;
				}
    break;

  case 907:
#line 5789 "gram.y"
    {}
    break;

  case 908:
#line 5790 "gram.y"
    {}
    break;

  case 909:
#line 5793 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 910:
#line 5794 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 911:
#line 5795 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 912:
#line 5802 "gram.y"
    { yyval.list = list_make1(NIL); }
    break;

  case 913:
#line 5803 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 914:
#line 5804 "gram.y"
    { yyval.list = NIL; }
    break;

  case 915:
#line 5805 "gram.y"
    { yyval.list = NIL; }
    break;

  case 916:
#line 5809 "gram.y"
    { yyval.list = yyvsp[0].list;}
    break;

  case 917:
#line 5810 "gram.y"
    { yyval.list = NIL; }
    break;

  case 918:
#line 5814 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 919:
#line 5818 "gram.y"
    { yyval.list = list_make1(yyvsp[0].sortby); }
    break;

  case 920:
#line 5819 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortby); }
    break;

  case 921:
#line 5823 "gram.y"
    {
					yyval.sortby = makeNode(SortBy);
					yyval.sortby->node = yyvsp[-2].node;
					yyval.sortby->sortby_kind = SORTBY_USING;
					yyval.sortby->useOp = yyvsp[0].list;
				}
    break;

  case 922:
#line 5830 "gram.y"
    {
					yyval.sortby = makeNode(SortBy);
					yyval.sortby->node = yyvsp[-1].node;
					yyval.sortby->sortby_kind = SORTBY_ASC;
					yyval.sortby->useOp = NIL;
				}
    break;

  case 923:
#line 5837 "gram.y"
    {
					yyval.sortby = makeNode(SortBy);
					yyval.sortby->node = yyvsp[-1].node;
					yyval.sortby->sortby_kind = SORTBY_DESC;
					yyval.sortby->useOp = NIL;
				}
    break;

  case 924:
#line 5844 "gram.y"
    {
					yyval.sortby = makeNode(SortBy);
					yyval.sortby->node = yyvsp[0].node;
					yyval.sortby->sortby_kind = SORTBY_ASC;	/* default */
					yyval.sortby->useOp = NIL;
				}
    break;

  case 925:
#line 5855 "gram.y"
    { yyval.list = list_make2(yyvsp[0].node, yyvsp[-2].node); }
    break;

  case 926:
#line 5857 "gram.y"
    { yyval.list = list_make2(yyvsp[-2].node, yyvsp[0].node); }
    break;

  case 927:
#line 5859 "gram.y"
    { yyval.list = list_make2(NULL, yyvsp[0].node); }
    break;

  case 928:
#line 5861 "gram.y"
    { yyval.list = list_make2(yyvsp[0].node, NULL); }
    break;

  case 929:
#line 5863 "gram.y"
    {
					/* Disabled because it was too confusing, bjm 2002-02-18 */
					ereport(ERROR,
							(errcode(ERRCODE_SYNTAX_ERROR),
							 errmsg("LIMIT #,# syntax is not supported"),
							 errhint("Use separate LIMIT and OFFSET clauses.")));
				}
    break;

  case 930:
#line 5873 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 931:
#line 5875 "gram.y"
    { yyval.list = list_make2(NULL,NULL); }
    break;

  case 932:
#line 5879 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 933:
#line 5881 "gram.y"
    {
					/* LIMIT ALL is represented as a NULL constant */
					A_Const *n = makeNode(A_Const);
					n->val.type = T_Null;
					yyval.node = (Node *)n;
				}
    break;

  case 934:
#line 5890 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 935:
#line 5894 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 936:
#line 5895 "gram.y"
    { yyval.list = NIL; }
    break;

  case 937:
#line 5899 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 938:
#line 5900 "gram.y"
    { yyval.node = NULL; }
    break;

  case 939:
#line 5904 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 940:
#line 5905 "gram.y"
    { yyval.list = NIL; }
    break;

  case 941:
#line 5909 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 942:
#line 5910 "gram.y"
    { yyval.list = NIL; }
    break;

  case 943:
#line 5914 "gram.y"
    { yyval.list = list_make1(yyvsp[0].node); }
    break;

  case 944:
#line 5915 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); }
    break;

  case 945:
#line 5920 "gram.y"
    {
					LockingClause *n = makeNode(LockingClause);
					n->lockedRels = yyvsp[-1].list;
					n->forUpdate = TRUE;
					n->noWait = yyvsp[0].boolean;
					yyval.node = (Node *) n;
				}
    break;

  case 946:
#line 5928 "gram.y"
    {
					LockingClause *n = makeNode(LockingClause);
					n->lockedRels = yyvsp[-1].list;
					n->forUpdate = FALSE;
					n->noWait = yyvsp[0].boolean;
					yyval.node = (Node *) n;
				}
    break;

  case 947:
#line 5938 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 948:
#line 5939 "gram.y"
    { yyval.list = NIL; }
    break;

  case 949:
#line 5945 "gram.y"
    {
					SelectStmt *n = makeNode(SelectStmt);
					n->valuesLists = list_make1(yyvsp[0].list);
					yyval.node = (Node *) n;
				}
    break;

  case 950:
#line 5951 "gram.y"
    {
					SelectStmt *n = (SelectStmt *) yyvsp[-2].node;
					n->valuesLists = lappend(n->valuesLists, yyvsp[0].list);
					yyval.node = (Node *) n;
				}
    break;

  case 951:
#line 5968 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 952:
#line 5969 "gram.y"
    { yyval.list = NIL; }
    break;

  case 953:
#line 5973 "gram.y"
    { yyval.list = list_make1(yyvsp[0].node); }
    break;

  case 954:
#line 5974 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
    break;

  case 955:
#line 5985 "gram.y"
    {
					yyval.node = (Node *) yyvsp[0].range;
				}
    break;

  case 956:
#line 5989 "gram.y"
    {
					yyvsp[-1].range->alias = yyvsp[0].alias;
					yyval.node = (Node *) yyvsp[-1].range;
				}
    break;

  case 957:
#line 5994 "gram.y"
    {
					RangeFunction *n = makeNode(RangeFunction);
					n->funccallnode = yyvsp[0].node;
					n->coldeflist = NIL;
					yyval.node = (Node *) n;
				}
    break;

  case 958:
#line 6001 "gram.y"
    {
					RangeFunction *n = makeNode(RangeFunction);
					n->funccallnode = yyvsp[-1].node;
					n->alias = yyvsp[0].alias;
					n->coldeflist = NIL;
					yyval.node = (Node *) n;
				}
    break;

  case 959:
#line 6009 "gram.y"
    {
					RangeFunction *n = makeNode(RangeFunction);
					n->funccallnode = yyvsp[-4].node;
					n->coldeflist = yyvsp[-1].list;
					yyval.node = (Node *) n;
				}
    break;

  case 960:
#line 6016 "gram.y"
    {
					RangeFunction *n = makeNode(RangeFunction);
					Alias *a = makeNode(Alias);
					n->funccallnode = yyvsp[-5].node;
					a->aliasname = yyvsp[-3].str;
					n->alias = a;
					n->coldeflist = yyvsp[-1].list;
					yyval.node = (Node *) n;
				}
    break;

  case 961:
#line 6026 "gram.y"
    {
					RangeFunction *n = makeNode(RangeFunction);
					Alias *a = makeNode(Alias);
					n->funccallnode = yyvsp[-4].node;
					a->aliasname = yyvsp[-3].str;
					n->alias = a;
					n->coldeflist = yyvsp[-1].list;
					yyval.node = (Node *) n;
				}
    break;

  case 962:
#line 6036 "gram.y"
    {
					/*
					 * The SQL spec does not permit a subselect
					 * (<derived_table>) without an alias clause,
					 * so we don't either.  This avoids the problem
					 * of needing to invent a unique refname for it.
					 * That could be surmounted if there's sufficient
					 * popular demand, but for now let's just implement
					 * the spec and see if anyone complains.
					 * However, it does seem like a good idea to emit
					 * an error message that's better than "syntax error".
					 */
					if (IsA(yyvsp[0].node, SelectStmt) &&
						((SelectStmt *) yyvsp[0].node)->valuesLists)
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("VALUES in FROM must have an alias"),
								 errhint("For example, FROM (VALUES ...) [AS] foo.")));
					else
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("subquery in FROM must have an alias"),
								 errhint("For example, FROM (SELECT ...) [AS] foo.")));
					yyval.node = NULL;
				}
    break;

  case 963:
#line 6062 "gram.y"
    {
					RangeSubselect *n = makeNode(RangeSubselect);
					n->subquery = yyvsp[-1].node;
					n->alias = yyvsp[0].alias;
					yyval.node = (Node *) n;
				}
    break;

  case 964:
#line 6069 "gram.y"
    {
					yyval.node = (Node *) yyvsp[0].jexpr;
				}
    break;

  case 965:
#line 6073 "gram.y"
    {
					yyvsp[-2].jexpr->alias = yyvsp[0].alias;
					yyval.node = (Node *) yyvsp[-2].jexpr;
				}
    break;

  case 966:
#line 6099 "gram.y"
    {
					yyval.jexpr = yyvsp[-1].jexpr;
				}
    break;

  case 967:
#line 6103 "gram.y"
    {
					/* CROSS JOIN is same as unqualified inner join */
					JoinExpr *n = makeNode(JoinExpr);
					n->jointype = JOIN_INNER;
					n->isNatural = FALSE;
					n->larg = yyvsp[-3].node;
					n->rarg = yyvsp[0].node;
					n->using = NIL;
					n->quals = NULL;
					yyval.jexpr = n;
				}
    break;

  case 968:
#line 6115 "gram.y"
    {
					JoinExpr *n = makeNode(JoinExpr);
					n->jointype = yyvsp[-3].jtype;
					n->isNatural = FALSE;
					n->larg = yyvsp[-4].node;
					n->rarg = yyvsp[-1].node;
					if (yyvsp[0].node != NULL && IsA(yyvsp[0].node, List))
						n->using = (List *) yyvsp[0].node; /* USING clause */
					else
						n->quals = yyvsp[0].node; /* ON clause */
					yyval.jexpr = n;
				}
    break;

  case 969:
#line 6128 "gram.y"
    {
					/* letting join_type reduce to empty doesn't work */
					JoinExpr *n = makeNode(JoinExpr);
					n->jointype = JOIN_INNER;
					n->isNatural = FALSE;
					n->larg = yyvsp[-3].node;
					n->rarg = yyvsp[-1].node;
					if (yyvsp[0].node != NULL && IsA(yyvsp[0].node, List))
						n->using = (List *) yyvsp[0].node; /* USING clause */
					else
						n->quals = yyvsp[0].node; /* ON clause */
					yyval.jexpr = n;
				}
    break;

  case 970:
#line 6142 "gram.y"
    {
					JoinExpr *n = makeNode(JoinExpr);
					n->jointype = yyvsp[-2].jtype;
					n->isNatural = TRUE;
					n->larg = yyvsp[-4].node;
					n->rarg = yyvsp[0].node;
					n->using = NIL; /* figure out which columns later... */
					n->quals = NULL; /* fill later */
					yyval.jexpr = n;
				}
    break;

  case 971:
#line 6153 "gram.y"
    {
					/* letting join_type reduce to empty doesn't work */
					JoinExpr *n = makeNode(JoinExpr);
					n->jointype = JOIN_INNER;
					n->isNatural = TRUE;
					n->larg = yyvsp[-3].node;
					n->rarg = yyvsp[0].node;
					n->using = NIL; /* figure out which columns later... */
					n->quals = NULL; /* fill later */
					yyval.jexpr = n;
				}
    break;

  case 972:
#line 6168 "gram.y"
    {
					yyval.alias = makeNode(Alias);
					yyval.alias->aliasname = yyvsp[-3].str;
					yyval.alias->colnames = yyvsp[-1].list;
				}
    break;

  case 973:
#line 6174 "gram.y"
    {
					yyval.alias = makeNode(Alias);
					yyval.alias->aliasname = yyvsp[0].str;
				}
    break;

  case 974:
#line 6179 "gram.y"
    {
					yyval.alias = makeNode(Alias);
					yyval.alias->aliasname = yyvsp[-3].str;
					yyval.alias->colnames = yyvsp[-1].list;
				}
    break;

  case 975:
#line 6185 "gram.y"
    {
					yyval.alias = makeNode(Alias);
					yyval.alias->aliasname = yyvsp[0].str;
				}
    break;

  case 976:
#line 6191 "gram.y"
    { yyval.jtype = JOIN_FULL; }
    break;

  case 977:
#line 6192 "gram.y"
    { yyval.jtype = JOIN_LEFT; }
    break;

  case 978:
#line 6193 "gram.y"
    { yyval.jtype = JOIN_RIGHT; }
    break;

  case 979:
#line 6194 "gram.y"
    { yyval.jtype = JOIN_INNER; }
    break;

  case 980:
#line 6198 "gram.y"
    { yyval.node = NULL; }
    break;

  case 981:
#line 6199 "gram.y"
    { yyval.node = NULL; }
    break;

  case 982:
#line 6211 "gram.y"
    { yyval.node = (Node *) yyvsp[-1].list; }
    break;

  case 983:
#line 6212 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 984:
#line 6218 "gram.y"
    {
					/* default inheritance */
					yyval.range = yyvsp[0].range;
					yyval.range->inhOpt = INH_DEFAULT;
					yyval.range->alias = NULL;
				}
    break;

  case 985:
#line 6225 "gram.y"
    {
					/* inheritance query */
					yyval.range = yyvsp[-1].range;
					yyval.range->inhOpt = INH_YES;
					yyval.range->alias = NULL;
				}
    break;

  case 986:
#line 6232 "gram.y"
    {
					/* no inheritance */
					yyval.range = yyvsp[0].range;
					yyval.range->inhOpt = INH_NO;
					yyval.range->alias = NULL;
				}
    break;

  case 987:
#line 6239 "gram.y"
    {
					/* no inheritance, SQL99-style syntax */
					yyval.range = yyvsp[-1].range;
					yyval.range->inhOpt = INH_NO;
					yyval.range->alias = NULL;
				}
    break;

  case 988:
#line 6258 "gram.y"
    {
					yyval.range = yyvsp[0].range;
				}
    break;

  case 989:
#line 6262 "gram.y"
    {
					Alias *alias = makeNode(Alias);
					alias->aliasname = yyvsp[0].str;
					yyvsp[-1].range->alias = alias;
					yyval.range = yyvsp[-1].range;
				}
    break;

  case 990:
#line 6269 "gram.y"
    {
					Alias *alias = makeNode(Alias);
					alias->aliasname = yyvsp[0].str;
					yyvsp[-2].range->alias = alias;
					yyval.range = yyvsp[-2].range;
				}
    break;

  case 991:
#line 6278 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 992:
#line 6283 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 993:
#line 6284 "gram.y"
    { yyval.node = NULL; }
    break;

  case 994:
#line 6290 "gram.y"
    {
					yyval.list = list_make1(yyvsp[0].node);
				}
    break;

  case 995:
#line 6294 "gram.y"
    {
					yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
				}
    break;

  case 996:
#line 6300 "gram.y"
    {
					ColumnDef *n = makeNode(ColumnDef);
					n->colname = yyvsp[-1].str;
					n->typename = yyvsp[0].typnam;
					n->constraints = NIL;
					n->is_local = true;
					yyval.node = (Node *)n;
				}
    break;

  case 997:
#line 6321 "gram.y"
    {
					yyval.typnam = yyvsp[-1].typnam;
					yyval.typnam->arrayBounds = yyvsp[0].list;
				}
    break;

  case 998:
#line 6326 "gram.y"
    {
					yyval.typnam = yyvsp[-1].typnam;
					yyval.typnam->arrayBounds = yyvsp[0].list;
					yyval.typnam->setof = TRUE;
				}
    break;

  case 999:
#line 6332 "gram.y"
    {
					/* SQL99's redundant syntax */
					yyval.typnam = yyvsp[-4].typnam;
					yyval.typnam->arrayBounds = list_make1(makeInteger(yyvsp[-1].ival));
				}
    break;

  case 1000:
#line 6338 "gram.y"
    {
					/* SQL99's redundant syntax */
					yyval.typnam = yyvsp[-4].typnam;
					yyval.typnam->arrayBounds = list_make1(makeInteger(yyvsp[-1].ival));
					yyval.typnam->setof = TRUE;
				}
    break;

  case 1001:
#line 6348 "gram.y"
    {  yyval.list = lappend(yyvsp[-2].list, makeInteger(-1)); }
    break;

  case 1002:
#line 6350 "gram.y"
    {  yyval.list = lappend(yyvsp[-3].list, makeInteger(yyvsp[-1].ival)); }
    break;

  case 1003:
#line 6352 "gram.y"
    {  yyval.list = NIL; }
    break;

  case 1004:
#line 6364 "gram.y"
    { yyval.typnam = yyvsp[0].typnam; }
    break;

  case 1005:
#line 6365 "gram.y"
    { yyval.typnam = yyvsp[0].typnam; }
    break;

  case 1006:
#line 6366 "gram.y"
    { yyval.typnam = yyvsp[0].typnam; }
    break;

  case 1007:
#line 6367 "gram.y"
    { yyval.typnam = yyvsp[0].typnam; }
    break;

  case 1008:
#line 6368 "gram.y"
    { yyval.typnam = yyvsp[0].typnam; }
    break;

  case 1009:
#line 6370 "gram.y"
    {
					yyval.typnam = yyvsp[-1].typnam;
					if (yyvsp[0].ival != INTERVAL_FULL_RANGE)
						yyval.typnam->typmod = INTERVAL_TYPMOD(INTERVAL_FULL_PRECISION, yyvsp[0].ival);
				}
    break;

  case 1010:
#line 6376 "gram.y"
    {
					yyval.typnam = yyvsp[-4].typnam;
					if (yyvsp[-2].ival < 0)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("INTERVAL(%d) precision must not be negative",
										yyvsp[-2].ival)));
					if (yyvsp[-2].ival > MAX_INTERVAL_PRECISION)
					{
						ereport(WARNING,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("INTERVAL(%d) precision reduced to maximum allowed, %d",
										yyvsp[-2].ival, MAX_INTERVAL_PRECISION)));
						yyvsp[-2].ival = MAX_INTERVAL_PRECISION;
					}
					yyval.typnam->typmod = INTERVAL_TYPMOD(yyvsp[-2].ival, yyvsp[0].ival);
				}
    break;

  case 1011:
#line 6394 "gram.y"
    {
					yyval.typnam = makeNode(TypeName);
					yyval.typnam->names = lcons(makeString(yyvsp[-1].str), yyvsp[0].list);
					yyval.typnam->typmod = -1;
					yyval.typnam->location = yylsp[-1];
				}
    break;

  case 1012:
#line 6412 "gram.y"
    { yyval.typnam = yyvsp[0].typnam; }
    break;

  case 1013:
#line 6413 "gram.y"
    { yyval.typnam = yyvsp[0].typnam; }
    break;

  case 1014:
#line 6414 "gram.y"
    { yyval.typnam = yyvsp[0].typnam; }
    break;

  case 1015:
#line 6415 "gram.y"
    { yyval.typnam = yyvsp[0].typnam; }
    break;

  case 1016:
#line 6416 "gram.y"
    { yyval.typnam = yyvsp[0].typnam; }
    break;

  case 1017:
#line 6421 "gram.y"
    {
					yyval.typnam = makeTypeName(yyvsp[0].str);
					yyval.typnam->location = yylsp[0];
				}
    break;

  case 1018:
#line 6433 "gram.y"
    {
					yyval.typnam = SystemTypeName("int4");
				}
    break;

  case 1019:
#line 6437 "gram.y"
    {
					yyval.typnam = SystemTypeName("int4");
				}
    break;

  case 1020:
#line 6441 "gram.y"
    {
					yyval.typnam = SystemTypeName("int2");
				}
    break;

  case 1021:
#line 6445 "gram.y"
    {
					yyval.typnam = SystemTypeName("int8");
				}
    break;

  case 1022:
#line 6449 "gram.y"
    {
					yyval.typnam = SystemTypeName("float4");
				}
    break;

  case 1023:
#line 6453 "gram.y"
    {
					yyval.typnam = yyvsp[0].typnam;
				}
    break;

  case 1024:
#line 6457 "gram.y"
    {
					yyval.typnam = SystemTypeName("float8");
				}
    break;

  case 1025:
#line 6461 "gram.y"
    {
					yyval.typnam = SystemTypeName("numeric");
					yyval.typnam->typmod = yyvsp[0].ival;
				}
    break;

  case 1026:
#line 6466 "gram.y"
    {
					yyval.typnam = SystemTypeName("numeric");
					yyval.typnam->typmod = yyvsp[0].ival;
				}
    break;

  case 1027:
#line 6471 "gram.y"
    {
					yyval.typnam = SystemTypeName("numeric");
					yyval.typnam->typmod = yyvsp[0].ival;
				}
    break;

  case 1028:
#line 6476 "gram.y"
    {
					yyval.typnam = SystemTypeName("bool");
				}
    break;

  case 1029:
#line 6482 "gram.y"
    {
					if (yyvsp[-1].ival < 1)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("precision for type float must be at least 1 bit")));
					else if (yyvsp[-1].ival <= 24)
						yyval.typnam = SystemTypeName("float4");
					else if (yyvsp[-1].ival <= 53)
						yyval.typnam = SystemTypeName("float8");
					else
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("precision for type float must be less than 54 bits")));
				}
    break;

  case 1030:
#line 6497 "gram.y"
    {
					yyval.typnam = SystemTypeName("float8");
				}
    break;

  case 1031:
#line 6504 "gram.y"
    {
					if (yyvsp[-3].ival < 1 || yyvsp[-3].ival > NUMERIC_MAX_PRECISION)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("NUMERIC precision %d must be between 1 and %d",
										yyvsp[-3].ival, NUMERIC_MAX_PRECISION)));
					if (yyvsp[-1].ival < 0 || yyvsp[-1].ival > yyvsp[-3].ival)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("NUMERIC scale %d must be between 0 and precision %d",
										yyvsp[-1].ival, yyvsp[-3].ival)));

					yyval.ival = ((yyvsp[-3].ival << 16) | yyvsp[-1].ival) + VARHDRSZ;
				}
    break;

  case 1032:
#line 6519 "gram.y"
    {
					if (yyvsp[-1].ival < 1 || yyvsp[-1].ival > NUMERIC_MAX_PRECISION)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("NUMERIC precision %d must be between 1 and %d",
										yyvsp[-1].ival, NUMERIC_MAX_PRECISION)));

					yyval.ival = (yyvsp[-1].ival << 16) + VARHDRSZ;
				}
    break;

  case 1033:
#line 6529 "gram.y"
    {
					/* Insert "-1" meaning "no limit" */
					yyval.ival = -1;
				}
    break;

  case 1034:
#line 6537 "gram.y"
    {
					if (yyvsp[-3].ival < 1 || yyvsp[-3].ival > NUMERIC_MAX_PRECISION)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("DECIMAL precision %d must be between 1 and %d",
										yyvsp[-3].ival, NUMERIC_MAX_PRECISION)));
					if (yyvsp[-1].ival < 0 || yyvsp[-1].ival > yyvsp[-3].ival)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("DECIMAL scale %d must be between 0 and precision %d",
										yyvsp[-1].ival, yyvsp[-3].ival)));

					yyval.ival = ((yyvsp[-3].ival << 16) | yyvsp[-1].ival) + VARHDRSZ;
				}
    break;

  case 1035:
#line 6552 "gram.y"
    {
					if (yyvsp[-1].ival < 1 || yyvsp[-1].ival > NUMERIC_MAX_PRECISION)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("DECIMAL precision %d must be between 1 and %d",
										yyvsp[-1].ival, NUMERIC_MAX_PRECISION)));

					yyval.ival = (yyvsp[-1].ival << 16) + VARHDRSZ;
				}
    break;

  case 1036:
#line 6562 "gram.y"
    {
					/* Insert "-1" meaning "no limit" */
					yyval.ival = -1;
				}
    break;

  case 1037:
#line 6574 "gram.y"
    {
					yyval.typnam = yyvsp[0].typnam;
				}
    break;

  case 1038:
#line 6578 "gram.y"
    {
					yyval.typnam = yyvsp[0].typnam;
				}
    break;

  case 1039:
#line 6586 "gram.y"
    {
					yyval.typnam = yyvsp[0].typnam;
				}
    break;

  case 1040:
#line 6590 "gram.y"
    {
					yyval.typnam = yyvsp[0].typnam;
					yyval.typnam->typmod = -1;
				}
    break;

  case 1041:
#line 6598 "gram.y"
    {
					char *typname;

					typname = yyvsp[-3].boolean ? "varbit" : "bit";
					yyval.typnam = SystemTypeName(typname);
					if (yyvsp[-1].ival < 1)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("length for type %s must be at least 1",
										typname)));
					else if (yyvsp[-1].ival > (MaxAttrSize * BITS_PER_BYTE))
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("length for type %s cannot exceed %d",
										typname, MaxAttrSize * BITS_PER_BYTE)));
					yyval.typnam->typmod = yyvsp[-1].ival;
				}
    break;

  case 1042:
#line 6619 "gram.y"
    {
					/* bit defaults to bit(1), varbit to no limit */
					if (yyvsp[0].boolean)
					{
						yyval.typnam = SystemTypeName("varbit");
						yyval.typnam->typmod = -1;
					}
					else
					{
						yyval.typnam = SystemTypeName("bit");
						yyval.typnam->typmod = 1;
					}
				}
    break;

  case 1043:
#line 6640 "gram.y"
    {
					yyval.typnam = yyvsp[0].typnam;
				}
    break;

  case 1044:
#line 6644 "gram.y"
    {
					yyval.typnam = yyvsp[0].typnam;
				}
    break;

  case 1045:
#line 6650 "gram.y"
    {
					yyval.typnam = yyvsp[0].typnam;
				}
    break;

  case 1046:
#line 6654 "gram.y"
    {
					/* Length was not specified so allow to be unrestricted.
					 * This handles problems with fixed-length (bpchar) strings
					 * which in column definitions must default to a length
					 * of one, but should not be constrained if the length
					 * was not specified.
					 */
					yyval.typnam = yyvsp[0].typnam;
					yyval.typnam->typmod = -1;
				}
    break;

  case 1047:
#line 6667 "gram.y"
    {
					if ((yyvsp[0].str != NULL) && (strcmp(yyvsp[0].str, "sql_text") != 0))
					{
						char *type;

						type = palloc(strlen(yyvsp[-4].str) + 1 + strlen(yyvsp[0].str) + 1);
						strcpy(type, yyvsp[-4].str);
						strcat(type, "_");
						strcat(type, yyvsp[0].str);
						yyvsp[-4].str = type;
					}

					yyval.typnam = SystemTypeName(yyvsp[-4].str);

					if (yyvsp[-2].ival < 1)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("length for type %s must be at least 1",
										yyvsp[-4].str)));
					else if (yyvsp[-2].ival > MaxAttrSize)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("length for type %s cannot exceed %d",
										yyvsp[-4].str, MaxAttrSize)));

					/* we actually implement these like a varlen, so
					 * the first 4 bytes is the length. (the difference
					 * between these and "text" is that we blank-pad and
					 * truncate where necessary)
					 */
					yyval.typnam->typmod = VARHDRSZ + yyvsp[-2].ival;
				}
    break;

  case 1048:
#line 6702 "gram.y"
    {
					if ((yyvsp[0].str != NULL) && (strcmp(yyvsp[0].str, "sql_text") != 0))
					{
						char *type;

						type = palloc(strlen(yyvsp[-1].str) + 1 + strlen(yyvsp[0].str) + 1);
						strcpy(type, yyvsp[-1].str);
						strcat(type, "_");
						strcat(type, yyvsp[0].str);
						yyvsp[-1].str = type;
					}

					yyval.typnam = SystemTypeName(yyvsp[-1].str);

					/* char defaults to char(1), varchar to no limit */
					if (strcmp(yyvsp[-1].str, "bpchar") == 0)
						yyval.typnam->typmod = VARHDRSZ + 1;
					else
						yyval.typnam->typmod = -1;
				}
    break;

  case 1049:
#line 6725 "gram.y"
    { yyval.str = yyvsp[0].boolean ? "varchar": "bpchar"; }
    break;

  case 1050:
#line 6727 "gram.y"
    { yyval.str = yyvsp[0].boolean ? "varchar": "bpchar"; }
    break;

  case 1051:
#line 6729 "gram.y"
    { yyval.str = "varchar"; }
    break;

  case 1052:
#line 6731 "gram.y"
    { yyval.str = yyvsp[0].boolean ? "varchar": "bpchar"; }
    break;

  case 1053:
#line 6733 "gram.y"
    { yyval.str = yyvsp[0].boolean ? "varchar": "bpchar"; }
    break;

  case 1054:
#line 6735 "gram.y"
    { yyval.str = yyvsp[0].boolean ? "varchar": "bpchar"; }
    break;

  case 1055:
#line 6739 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 1056:
#line 6740 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 1057:
#line 6744 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1058:
#line 6745 "gram.y"
    { yyval.str = NULL; }
    break;

  case 1059:
#line 6750 "gram.y"
    {
					if (yyvsp[0].boolean)
						yyval.typnam = SystemTypeName("timestamptz");
					else
						yyval.typnam = SystemTypeName("timestamp");
					/* XXX the timezone field seems to be unused
					 * - thomas 2001-09-06
					 */
					yyval.typnam->timezone = yyvsp[0].boolean;
					if (yyvsp[-2].ival < 0)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("TIMESTAMP(%d)%s precision must not be negative",
										yyvsp[-2].ival, (yyvsp[0].boolean ? " WITH TIME ZONE": ""))));
					if (yyvsp[-2].ival > MAX_TIMESTAMP_PRECISION)
					{
						ereport(WARNING,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("TIMESTAMP(%d)%s precision reduced to maximum allowed, %d",
										yyvsp[-2].ival, (yyvsp[0].boolean ? " WITH TIME ZONE": ""),
										MAX_TIMESTAMP_PRECISION)));
						yyvsp[-2].ival = MAX_TIMESTAMP_PRECISION;
					}
					yyval.typnam->typmod = yyvsp[-2].ival;
				}
    break;

  case 1060:
#line 6776 "gram.y"
    {
					if (yyvsp[0].boolean)
						yyval.typnam = SystemTypeName("timestamptz");
					else
						yyval.typnam = SystemTypeName("timestamp");
					/* XXX the timezone field seems to be unused
					 * - thomas 2001-09-06
					 */
					yyval.typnam->timezone = yyvsp[0].boolean;
				}
    break;

  case 1061:
#line 6787 "gram.y"
    {
					if (yyvsp[0].boolean)
						yyval.typnam = SystemTypeName("timetz");
					else
						yyval.typnam = SystemTypeName("time");
					if (yyvsp[-2].ival < 0)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("TIME(%d)%s precision must not be negative",
										yyvsp[-2].ival, (yyvsp[0].boolean ? " WITH TIME ZONE": ""))));
					if (yyvsp[-2].ival > MAX_TIME_PRECISION)
					{
						ereport(WARNING,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("TIME(%d)%s precision reduced to maximum allowed, %d",
										yyvsp[-2].ival, (yyvsp[0].boolean ? " WITH TIME ZONE": ""),
										MAX_TIME_PRECISION)));
						yyvsp[-2].ival = MAX_TIME_PRECISION;
					}
					yyval.typnam->typmod = yyvsp[-2].ival;
				}
    break;

  case 1062:
#line 6809 "gram.y"
    {
					if (yyvsp[0].boolean)
						yyval.typnam = SystemTypeName("timetz");
					else
						yyval.typnam = SystemTypeName("time");
				}
    break;

  case 1063:
#line 6818 "gram.y"
    { yyval.typnam = SystemTypeName("interval"); }
    break;

  case 1064:
#line 6822 "gram.y"
    { yyval.boolean = TRUE; }
    break;

  case 1065:
#line 6823 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 1066:
#line 6824 "gram.y"
    { yyval.boolean = FALSE; }
    break;

  case 1067:
#line 6828 "gram.y"
    { yyval.ival = INTERVAL_MASK(YEAR); }
    break;

  case 1068:
#line 6829 "gram.y"
    { yyval.ival = INTERVAL_MASK(MONTH); }
    break;

  case 1069:
#line 6830 "gram.y"
    { yyval.ival = INTERVAL_MASK(DAY); }
    break;

  case 1070:
#line 6831 "gram.y"
    { yyval.ival = INTERVAL_MASK(HOUR); }
    break;

  case 1071:
#line 6832 "gram.y"
    { yyval.ival = INTERVAL_MASK(MINUTE); }
    break;

  case 1072:
#line 6833 "gram.y"
    { yyval.ival = INTERVAL_MASK(SECOND); }
    break;

  case 1073:
#line 6835 "gram.y"
    { yyval.ival = INTERVAL_MASK(YEAR) | INTERVAL_MASK(MONTH); }
    break;

  case 1074:
#line 6837 "gram.y"
    { yyval.ival = INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR); }
    break;

  case 1075:
#line 6839 "gram.y"
    { yyval.ival = INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR)
						| INTERVAL_MASK(MINUTE); }
    break;

  case 1076:
#line 6842 "gram.y"
    { yyval.ival = INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR)
						| INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND); }
    break;

  case 1077:
#line 6845 "gram.y"
    { yyval.ival = INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE); }
    break;

  case 1078:
#line 6847 "gram.y"
    { yyval.ival = INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE)
						| INTERVAL_MASK(SECOND); }
    break;

  case 1079:
#line 6850 "gram.y"
    { yyval.ival = INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND); }
    break;

  case 1080:
#line 6851 "gram.y"
    { yyval.ival = INTERVAL_FULL_RANGE; }
    break;

  case 1081:
#line 6877 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 1082:
#line 6879 "gram.y"
    { yyval.node = makeTypeCast(yyvsp[-2].node, yyvsp[0].typnam); }
    break;

  case 1083:
#line 6881 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("timezone");
					n->args = list_make2(yyvsp[0].node, yyvsp[-4].node);
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-3];
					yyval.node = (Node *) n;
				}
    break;

  case 1084:
#line 6900 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1085:
#line 6902 "gram.y"
    { yyval.node = doNegate(yyvsp[0].node, yylsp[-1]); }
    break;

  case 1086:
#line 6904 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1087:
#line 6906 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1088:
#line 6908 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1089:
#line 6910 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1090:
#line 6912 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1091:
#line 6914 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1092:
#line 6916 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1093:
#line 6918 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1094:
#line 6920 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1095:
#line 6923 "gram.y"
    { yyval.node = (Node *) makeA_Expr(AEXPR_OP, yyvsp[-1].list, yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1096:
#line 6925 "gram.y"
    { yyval.node = (Node *) makeA_Expr(AEXPR_OP, yyvsp[-1].list, NULL, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1097:
#line 6927 "gram.y"
    { yyval.node = (Node *) makeA_Expr(AEXPR_OP, yyvsp[0].list, yyvsp[-1].node, NULL, yylsp[0]); }
    break;

  case 1098:
#line 6930 "gram.y"
    { yyval.node = (Node *) makeA_Expr(AEXPR_AND, NIL, yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1099:
#line 6932 "gram.y"
    { yyval.node = (Node *) makeA_Expr(AEXPR_OR, NIL, yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1100:
#line 6934 "gram.y"
    { yyval.node = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1101:
#line 6937 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1102:
#line 6939 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("like_escape");
					n->args = list_make2(yyvsp[-2].node, yyvsp[0].node);
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-1];
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~", yyvsp[-4].node, (Node *) n, yylsp[-3]);
				}
    break;

  case 1103:
#line 6949 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~", yyvsp[-3].node, yyvsp[0].node, yylsp[-2]); }
    break;

  case 1104:
#line 6951 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("like_escape");
					n->args = list_make2(yyvsp[-2].node, yyvsp[0].node);
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-1];
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~", yyvsp[-5].node, (Node *) n, yylsp[-4]);
				}
    break;

  case 1105:
#line 6961 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~*", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1106:
#line 6963 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("like_escape");
					n->args = list_make2(yyvsp[-2].node, yyvsp[0].node);
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-1];
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~*", yyvsp[-4].node, (Node *) n, yylsp[-3]);
				}
    break;

  case 1107:
#line 6973 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~*", yyvsp[-3].node, yyvsp[0].node, yylsp[-2]); }
    break;

  case 1108:
#line 6975 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("like_escape");
					n->args = list_make2(yyvsp[-2].node, yyvsp[0].node);
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-1];
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~*", yyvsp[-5].node, (Node *) n, yylsp[-4]);
				}
    break;

  case 1109:
#line 6986 "gram.y"
    {
					A_Const *c = makeNode(A_Const);
					FuncCall *n = makeNode(FuncCall);
					c->val.type = T_Null;
					n->funcname = SystemFuncName("similar_escape");
					n->args = list_make2(yyvsp[0].node, (Node *) c);
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-2];
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", yyvsp[-3].node, (Node *) n, yylsp[-2]);
				}
    break;

  case 1110:
#line 6998 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("similar_escape");
					n->args = list_make2(yyvsp[-2].node, yyvsp[0].node);
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-1];
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", yyvsp[-5].node, (Node *) n, yylsp[-4]);
				}
    break;

  case 1111:
#line 7008 "gram.y"
    {
					A_Const *c = makeNode(A_Const);
					FuncCall *n = makeNode(FuncCall);
					c->val.type = T_Null;
					n->funcname = SystemFuncName("similar_escape");
					n->args = list_make2(yyvsp[0].node, (Node *) c);
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[0];
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", yyvsp[-4].node, (Node *) n, yylsp[-3]);
				}
    break;

  case 1112:
#line 7020 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("similar_escape");
					n->args = list_make2(yyvsp[-2].node, yyvsp[0].node);
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-1];
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", yyvsp[-6].node, (Node *) n, yylsp[-5]);
				}
    break;

  case 1113:
#line 7040 "gram.y"
    {
					NullTest *n = makeNode(NullTest);
					n->arg = (Expr *) yyvsp[-2].node;
					n->nulltesttype = IS_NULL;
					yyval.node = (Node *)n;
				}
    break;

  case 1114:
#line 7047 "gram.y"
    {
					NullTest *n = makeNode(NullTest);
					n->arg = (Expr *) yyvsp[-1].node;
					n->nulltesttype = IS_NULL;
					yyval.node = (Node *)n;
				}
    break;

  case 1115:
#line 7054 "gram.y"
    {
					NullTest *n = makeNode(NullTest);
					n->arg = (Expr *) yyvsp[-3].node;
					n->nulltesttype = IS_NOT_NULL;
					yyval.node = (Node *)n;
				}
    break;

  case 1116:
#line 7061 "gram.y"
    {
					NullTest *n = makeNode(NullTest);
					n->arg = (Expr *) yyvsp[-1].node;
					n->nulltesttype = IS_NOT_NULL;
					yyval.node = (Node *)n;
				}
    break;

  case 1117:
#line 7068 "gram.y"
    {
					yyval.node = (Node *)makeOverlaps(yyvsp[-2].list, yyvsp[0].list, yylsp[-1]);
				}
    break;

  case 1118:
#line 7072 "gram.y"
    {
					BooleanTest *b = makeNode(BooleanTest);
					b->arg = (Expr *) yyvsp[-2].node;
					b->booltesttype = IS_TRUE;
					yyval.node = (Node *)b;
				}
    break;

  case 1119:
#line 7079 "gram.y"
    {
					BooleanTest *b = makeNode(BooleanTest);
					b->arg = (Expr *) yyvsp[-3].node;
					b->booltesttype = IS_NOT_TRUE;
					yyval.node = (Node *)b;
				}
    break;

  case 1120:
#line 7086 "gram.y"
    {
					BooleanTest *b = makeNode(BooleanTest);
					b->arg = (Expr *) yyvsp[-2].node;
					b->booltesttype = IS_FALSE;
					yyval.node = (Node *)b;
				}
    break;

  case 1121:
#line 7093 "gram.y"
    {
					BooleanTest *b = makeNode(BooleanTest);
					b->arg = (Expr *) yyvsp[-3].node;
					b->booltesttype = IS_NOT_FALSE;
					yyval.node = (Node *)b;
				}
    break;

  case 1122:
#line 7100 "gram.y"
    {
					BooleanTest *b = makeNode(BooleanTest);
					b->arg = (Expr *) yyvsp[-2].node;
					b->booltesttype = IS_UNKNOWN;
					yyval.node = (Node *)b;
				}
    break;

  case 1123:
#line 7107 "gram.y"
    {
					BooleanTest *b = makeNode(BooleanTest);
					b->arg = (Expr *) yyvsp[-3].node;
					b->booltesttype = IS_NOT_UNKNOWN;
					yyval.node = (Node *)b;
				}
    break;

  case 1124:
#line 7114 "gram.y"
    {
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", yyvsp[-4].node, yyvsp[0].node, yylsp[-3]);
				}
    break;

  case 1125:
#line 7118 "gram.y"
    {
					yyval.node = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL,
									(Node *) makeSimpleA_Expr(AEXPR_DISTINCT,
															  "=", yyvsp[-5].node, yyvsp[0].node, yylsp[-4]),
											 yylsp[-4]);

				}
    break;

  case 1126:
#line 7126 "gram.y"
    {
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", yyvsp[-5].node, (Node *) yyvsp[-1].list, yylsp[-4]);
				}
    break;

  case 1127:
#line 7130 "gram.y"
    {
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", yyvsp[-6].node, (Node *) yyvsp[-1].list, yylsp[-5]);
				}
    break;

  case 1128:
#line 7134 "gram.y"
    {
					yyval.node = (Node *) makeA_Expr(AEXPR_AND, NIL,
						(Node *) makeSimpleA_Expr(AEXPR_OP, ">=", yyvsp[-5].node, yyvsp[-2].node, yylsp[-4]),
						(Node *) makeSimpleA_Expr(AEXPR_OP, "<=", yyvsp[-5].node, yyvsp[0].node, yylsp[-4]),
											 yylsp[-4]);
				}
    break;

  case 1129:
#line 7141 "gram.y"
    {
					yyval.node = (Node *) makeA_Expr(AEXPR_OR, NIL,
						(Node *) makeSimpleA_Expr(AEXPR_OP, "<", yyvsp[-6].node, yyvsp[-2].node, yylsp[-5]),
						(Node *) makeSimpleA_Expr(AEXPR_OP, ">", yyvsp[-6].node, yyvsp[0].node, yylsp[-5]),
											 yylsp[-5]);
				}
    break;

  case 1130:
#line 7148 "gram.y"
    {
					yyval.node = (Node *) makeA_Expr(AEXPR_OR, NIL,
						(Node *) makeA_Expr(AEXPR_AND, NIL,
						    (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", yyvsp[-5].node, yyvsp[-2].node, yylsp[-4]),
						    (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", yyvsp[-5].node, yyvsp[0].node, yylsp[-4]),
											yylsp[-4]),
						(Node *) makeA_Expr(AEXPR_AND, NIL,
						    (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", yyvsp[-5].node, yyvsp[0].node, yylsp[-4]),
						    (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", yyvsp[-5].node, yyvsp[-2].node, yylsp[-4]),
											yylsp[-4]),
											 yylsp[-4]);
				}
    break;

  case 1131:
#line 7161 "gram.y"
    {
					yyval.node = (Node *) makeA_Expr(AEXPR_AND, NIL,
						(Node *) makeA_Expr(AEXPR_OR, NIL,
						    (Node *) makeSimpleA_Expr(AEXPR_OP, "<", yyvsp[-6].node, yyvsp[-2].node, yylsp[-5]),
						    (Node *) makeSimpleA_Expr(AEXPR_OP, ">", yyvsp[-6].node, yyvsp[0].node, yylsp[-5]),
											yylsp[-5]),
						(Node *) makeA_Expr(AEXPR_OR, NIL,
						    (Node *) makeSimpleA_Expr(AEXPR_OP, "<", yyvsp[-6].node, yyvsp[0].node, yylsp[-5]),
						    (Node *) makeSimpleA_Expr(AEXPR_OP, ">", yyvsp[-6].node, yyvsp[-2].node, yylsp[-5]),
											yylsp[-5]),
											 yylsp[-5]);
				}
    break;

  case 1132:
#line 7174 "gram.y"
    {
					/* in_expr returns a SubLink or a list of a_exprs */
					if (IsA(yyvsp[0].node, SubLink))
					{
						/* generate foo = ANY (subquery) */
						SubLink *n = (SubLink *) yyvsp[0].node;
						n->subLinkType = ANY_SUBLINK;
						n->testexpr = yyvsp[-2].node;
						n->operName = list_make1(makeString("="));
						yyval.node = (Node *)n;
					}
					else
					{
						/* generate scalar IN expression */
						yyval.node = (Node *) makeSimpleA_Expr(AEXPR_IN, "=", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]);
					}
				}
    break;

  case 1133:
#line 7192 "gram.y"
    {
					/* in_expr returns a SubLink or a list of a_exprs */
					if (IsA(yyvsp[0].node, SubLink))
					{
						/* generate NOT (foo = ANY (subquery)) */
						/* Make an = ANY node */
						SubLink *n = (SubLink *) yyvsp[0].node;
						n->subLinkType = ANY_SUBLINK;
						n->testexpr = yyvsp[-3].node;
						n->operName = list_make1(makeString("="));
						/* Stick a NOT on top */
						yyval.node = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, (Node *) n, yylsp[-2]);
					}
					else
					{
						/* generate scalar NOT IN expression */
						yyval.node = (Node *) makeSimpleA_Expr(AEXPR_IN, "<>", yyvsp[-3].node, yyvsp[0].node, yylsp[-2]);
					}
				}
    break;

  case 1134:
#line 7212 "gram.y"
    {
					SubLink *n = makeNode(SubLink);
					n->subLinkType = yyvsp[-1].ival;
					n->testexpr = yyvsp[-3].node;
					n->operName = yyvsp[-2].list;
					n->subselect = yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 1135:
#line 7221 "gram.y"
    {
					if (yyvsp[-3].ival == ANY_SUBLINK)
						yyval.node = (Node *) makeA_Expr(AEXPR_OP_ANY, yyvsp[-4].list, yyvsp[-5].node, yyvsp[-1].node, yylsp[-4]);
					else
						yyval.node = (Node *) makeA_Expr(AEXPR_OP_ALL, yyvsp[-4].list, yyvsp[-5].node, yyvsp[-1].node, yylsp[-4]);
				}
    break;

  case 1136:
#line 7228 "gram.y"
    {
					/* Not sure how to get rid of the parentheses
					 * but there are lots of shift/reduce errors without them.
					 *
					 * Should be able to implement this by plopping the entire
					 * select into a node, then transforming the target expressions
					 * from whatever they are into count(*), and testing the
					 * entire result equal to one.
					 * But, will probably implement a separate node in the executor.
					 */
					ereport(ERROR,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("UNIQUE predicate is not yet implemented")));
				}
    break;

  case 1137:
#line 7254 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 1138:
#line 7256 "gram.y"
    { yyval.node = makeTypeCast(yyvsp[-2].node, yyvsp[0].typnam); }
    break;

  case 1139:
#line 7258 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1140:
#line 7260 "gram.y"
    { yyval.node = doNegate(yyvsp[0].node, yylsp[-1]); }
    break;

  case 1141:
#line 7262 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1142:
#line 7264 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1143:
#line 7266 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1144:
#line 7268 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1145:
#line 7270 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1146:
#line 7272 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1147:
#line 7274 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1148:
#line 7276 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1149:
#line 7278 "gram.y"
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1150:
#line 7280 "gram.y"
    { yyval.node = (Node *) makeA_Expr(AEXPR_OP, yyvsp[-1].list, yyvsp[-2].node, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1151:
#line 7282 "gram.y"
    { yyval.node = (Node *) makeA_Expr(AEXPR_OP, yyvsp[-1].list, NULL, yyvsp[0].node, yylsp[-1]); }
    break;

  case 1152:
#line 7284 "gram.y"
    { yyval.node = (Node *) makeA_Expr(AEXPR_OP, yyvsp[0].list, yyvsp[-1].node, NULL, yylsp[0]); }
    break;

  case 1153:
#line 7286 "gram.y"
    {
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", yyvsp[-4].node, yyvsp[0].node, yylsp[-3]);
				}
    break;

  case 1154:
#line 7290 "gram.y"
    {
					yyval.node = (Node *) makeA_Expr(AEXPR_NOT, NIL,
						NULL, (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", yyvsp[-5].node, yyvsp[0].node, yylsp[-4]), yylsp[-4]);
				}
    break;

  case 1155:
#line 7295 "gram.y"
    {
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", yyvsp[-5].node, (Node *) yyvsp[-1].list, yylsp[-4]);
				}
    break;

  case 1156:
#line 7299 "gram.y"
    {
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", yyvsp[-6].node, (Node *) yyvsp[-1].list, yylsp[-5]);
				}
    break;

  case 1157:
#line 7312 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 1158:
#line 7313 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 1159:
#line 7315 "gram.y"
    {
					ParamRef *p = makeNode(ParamRef);
					p->number = yyvsp[-1].ival;
					if (yyvsp[0].list)
					{
						A_Indirection *n = makeNode(A_Indirection);
						n->arg = (Node *) p;
						n->indirection = yyvsp[0].list;
						yyval.node = (Node *) n;
					}
					else
						yyval.node = (Node *) p;
				}
    break;

  case 1160:
#line 7329 "gram.y"
    {
					if (yyvsp[0].list)
					{
						A_Indirection *n = makeNode(A_Indirection);
						n->arg = yyvsp[-2].node;
						n->indirection = yyvsp[0].list;
						yyval.node = (Node *)n;
					}
					else
						yyval.node = yyvsp[-2].node;
				}
    break;

  case 1161:
#line 7341 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 1162:
#line 7343 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 1163:
#line 7345 "gram.y"
    {
					SubLink *n = makeNode(SubLink);
					n->subLinkType = EXPR_SUBLINK;
					n->testexpr = NULL;
					n->operName = NIL;
					n->subselect = yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 1164:
#line 7354 "gram.y"
    {
					SubLink *n = makeNode(SubLink);
					n->subLinkType = EXISTS_SUBLINK;
					n->testexpr = NULL;
					n->operName = NIL;
					n->subselect = yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 1165:
#line 7363 "gram.y"
    {
					SubLink *n = makeNode(SubLink);
					n->subLinkType = ARRAY_SUBLINK;
					n->testexpr = NULL;
					n->operName = NIL;
					n->subselect = yyvsp[0].node;
					yyval.node = (Node *)n;
				}
    break;

  case 1166:
#line 7372 "gram.y"
    {	yyval.node = yyvsp[0].node;	}
    break;

  case 1167:
#line 7374 "gram.y"
    {
					RowExpr *r = makeNode(RowExpr);
					r->args = yyvsp[0].list;
					r->row_typeid = InvalidOid;	/* not analyzed yet */
					yyval.node = (Node *)r;
				}
    break;

  case 1168:
#line 7391 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = yyvsp[-2].list;
					n->args = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-2];
					yyval.node = (Node *)n;
				}
    break;

  case 1169:
#line 7401 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = yyvsp[-3].list;
					n->args = yyvsp[-1].list;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-3];
					yyval.node = (Node *)n;
				}
    break;

  case 1170:
#line 7411 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = yyvsp[-4].list;
					n->args = yyvsp[-1].list;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					/* Ideally we'd mark the FuncCall node to indicate
					 * "must be an aggregate", but there's no provision
					 * for that in FuncCall at the moment.
					 */
					n->location = yylsp[-4];
					yyval.node = (Node *)n;
				}
    break;

  case 1171:
#line 7425 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = yyvsp[-4].list;
					n->args = yyvsp[-1].list;
					n->agg_star = FALSE;
					n->agg_distinct = TRUE;
					n->location = yylsp[-4];
					yyval.node = (Node *)n;
				}
    break;

  case 1172:
#line 7435 "gram.y"
    {
					/*
					 * We consider AGGREGATE(*) to invoke a parameterless
					 * aggregate.  This does the right thing for COUNT(*),
					 * and there are no other aggregates in SQL92 that accept
					 * '*' as parameter.
					 *
					 * The FuncCall node is also marked agg_star = true,
					 * so that later processing can detect what the argument
					 * really was.
					 */
					FuncCall *n = makeNode(FuncCall);
					n->funcname = yyvsp[-3].list;
					n->args = NIL;
					n->agg_star = TRUE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-3];
					yyval.node = (Node *)n;
				}
    break;

  case 1173:
#line 7455 "gram.y"
    {
					/*
					 * Translate as "'now'::text::date".
					 *
					 * We cannot use "'now'::date" because coerce_type() will
					 * immediately reduce that to a constant representing
					 * today's date.  We need to delay the conversion until
					 * runtime, else the wrong things will happen when
					 * CURRENT_DATE is used in a column default value or rule.
					 *
					 * This could be simplified if we had a way to generate
					 * an expression tree representing runtime application
					 * of type-input conversion functions.  (As of PG 7.3
					 * that is actually possible, but not clear that we want
					 * to rely on it.)
					 */
					A_Const *s = makeNode(A_Const);
					TypeName *d;

					s->val.type = T_String;
					s->val.val.str = "now";
					s->typename = SystemTypeName("text");

					d = SystemTypeName("date");

					yyval.node = (Node *)makeTypeCast((Node *)s, d);
				}
    break;

  case 1174:
#line 7483 "gram.y"
    {
					/*
					 * Translate as "'now'::text::timetz".
					 * See comments for CURRENT_DATE.
					 */
					A_Const *s = makeNode(A_Const);
					TypeName *d;

					s->val.type = T_String;
					s->val.val.str = "now";
					s->typename = SystemTypeName("text");

					d = SystemTypeName("timetz");

					yyval.node = (Node *)makeTypeCast((Node *)s, d);
				}
    break;

  case 1175:
#line 7500 "gram.y"
    {
					/*
					 * Translate as "'now'::text::timetz(n)".
					 * See comments for CURRENT_DATE.
					 */
					A_Const *s = makeNode(A_Const);
					TypeName *d;

					s->val.type = T_String;
					s->val.val.str = "now";
					s->typename = SystemTypeName("text");
					d = SystemTypeName("timetz");
					if (yyvsp[-1].ival < 0)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("CURRENT_TIME(%d) precision must not be negative",
										yyvsp[-1].ival)));
					if (yyvsp[-1].ival > MAX_TIME_PRECISION)
					{
						ereport(WARNING,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("CURRENT_TIME(%d) precision reduced to maximum allowed, %d",
										yyvsp[-1].ival, MAX_TIME_PRECISION)));
						yyvsp[-1].ival = MAX_TIME_PRECISION;
					}
					d->typmod = yyvsp[-1].ival;

					yyval.node = (Node *)makeTypeCast((Node *)s, d);
				}
    break;

  case 1176:
#line 7530 "gram.y"
    {
					/*
					 * Translate as "now()", since we have a function that
					 * does exactly what is needed.
					 */
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("now");
					n->args = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[0];
					yyval.node = (Node *)n;
				}
    break;

  case 1177:
#line 7544 "gram.y"
    {
					/*
					 * Translate as "'now'::text::timestamptz(n)".
					 * See comments for CURRENT_DATE.
					 */
					A_Const *s = makeNode(A_Const);
					TypeName *d;

					s->val.type = T_String;
					s->val.val.str = "now";
					s->typename = SystemTypeName("text");

					d = SystemTypeName("timestamptz");
					if (yyvsp[-1].ival < 0)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("CURRENT_TIMESTAMP(%d) precision must not be negative",
										yyvsp[-1].ival)));
					if (yyvsp[-1].ival > MAX_TIMESTAMP_PRECISION)
					{
						ereport(WARNING,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("CURRENT_TIMESTAMP(%d) precision reduced to maximum allowed, %d",
										yyvsp[-1].ival, MAX_TIMESTAMP_PRECISION)));
						yyvsp[-1].ival = MAX_TIMESTAMP_PRECISION;
					}
					d->typmod = yyvsp[-1].ival;

					yyval.node = (Node *)makeTypeCast((Node *)s, d);
				}
    break;

  case 1178:
#line 7575 "gram.y"
    {
					/*
					 * Translate as "'now'::text::time".
					 * See comments for CURRENT_DATE.
					 */
					A_Const *s = makeNode(A_Const);
					TypeName *d;

					s->val.type = T_String;
					s->val.val.str = "now";
					s->typename = SystemTypeName("text");

					d = SystemTypeName("time");

					yyval.node = (Node *)makeTypeCast((Node *)s, d);
				}
    break;

  case 1179:
#line 7592 "gram.y"
    {
					/*
					 * Translate as "'now'::text::time(n)".
					 * See comments for CURRENT_DATE.
					 */
					A_Const *s = makeNode(A_Const);
					TypeName *d;

					s->val.type = T_String;
					s->val.val.str = "now";
					s->typename = SystemTypeName("text");
					d = SystemTypeName("time");
					if (yyvsp[-1].ival < 0)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("LOCALTIME(%d) precision must not be negative",
										yyvsp[-1].ival)));
					if (yyvsp[-1].ival > MAX_TIME_PRECISION)
					{
						ereport(WARNING,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("LOCALTIME(%d) precision reduced to maximum allowed, %d",
										yyvsp[-1].ival, MAX_TIME_PRECISION)));
						yyvsp[-1].ival = MAX_TIME_PRECISION;
					}
					d->typmod = yyvsp[-1].ival;

					yyval.node = (Node *)makeTypeCast((Node *)s, d);
				}
    break;

  case 1180:
#line 7622 "gram.y"
    {
					/*
					 * Translate as "'now'::text::timestamp".
					 * See comments for CURRENT_DATE.
					 */
					A_Const *s = makeNode(A_Const);
					TypeName *d;

					s->val.type = T_String;
					s->val.val.str = "now";
					s->typename = SystemTypeName("text");

					d = SystemTypeName("timestamp");

					yyval.node = (Node *)makeTypeCast((Node *)s, d);
				}
    break;

  case 1181:
#line 7639 "gram.y"
    {
					/*
					 * Translate as "'now'::text::timestamp(n)".
					 * See comments for CURRENT_DATE.
					 */
					A_Const *s = makeNode(A_Const);
					TypeName *d;

					s->val.type = T_String;
					s->val.val.str = "now";
					s->typename = SystemTypeName("text");

					d = SystemTypeName("timestamp");
					if (yyvsp[-1].ival < 0)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("LOCALTIMESTAMP(%d) precision must not be negative",
										yyvsp[-1].ival)));
					if (yyvsp[-1].ival > MAX_TIMESTAMP_PRECISION)
					{
						ereport(WARNING,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("LOCALTIMESTAMP(%d) precision reduced to maximum allowed, %d",
										yyvsp[-1].ival, MAX_TIMESTAMP_PRECISION)));
						yyvsp[-1].ival = MAX_TIMESTAMP_PRECISION;
					}
					d->typmod = yyvsp[-1].ival;

					yyval.node = (Node *)makeTypeCast((Node *)s, d);
				}
    break;

  case 1182:
#line 7670 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("current_user");
					n->args = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[0];
					yyval.node = (Node *)n;
				}
    break;

  case 1183:
#line 7680 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("current_user");
					n->args = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[0];
					yyval.node = (Node *)n;
				}
    break;

  case 1184:
#line 7690 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("session_user");
					n->args = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[0];
					yyval.node = (Node *)n;
				}
    break;

  case 1185:
#line 7700 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("current_user");
					n->args = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[0];
					yyval.node = (Node *)n;
				}
    break;

  case 1186:
#line 7710 "gram.y"
    { yyval.node = makeTypeCast(yyvsp[-3].node, yyvsp[-1].typnam); }
    break;

  case 1187:
#line 7712 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("date_part");
					n->args = yyvsp[-1].list;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-3];
					yyval.node = (Node *)n;
				}
    break;

  case 1188:
#line 7722 "gram.y"
    {
					/* overlay(A PLACING B FROM C FOR D) is converted to
					 * substring(A, 1, C-1) || B || substring(A, C+1, C+D)
					 * overlay(A PLACING B FROM C) is converted to
					 * substring(A, 1, C-1) || B || substring(A, C+1, C+char_length(B))
					 */
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("overlay");
					n->args = yyvsp[-1].list;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-3];
					yyval.node = (Node *)n;
				}
    break;

  case 1189:
#line 7737 "gram.y"
    {
					/* position(A in B) is converted to position(B, A) */
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("position");
					n->args = yyvsp[-1].list;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-3];
					yyval.node = (Node *)n;
				}
    break;

  case 1190:
#line 7748 "gram.y"
    {
					/* substring(A from B for C) is converted to
					 * substring(A, B, C) - thomas 2000-11-28
					 */
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("substring");
					n->args = yyvsp[-1].list;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-3];
					yyval.node = (Node *)n;
				}
    break;

  case 1191:
#line 7761 "gram.y"
    {
					/* TREAT(expr AS target) converts expr of a particular type to target,
					 * which is defined to be a subtype of the original expression.
					 * In SQL99, this is intended for use with structured UDTs,
					 * but let's make this a generally useful form allowing stronger
					 * coercions than are handled by implicit casting.
					 */
					FuncCall *n = makeNode(FuncCall);
					/* Convert SystemTypeName() to SystemFuncName() even though
					 * at the moment they result in the same thing.
					 */
					n->funcname = SystemFuncName(((Value *)llast(yyvsp[-1].typnam->names))->val.str);
					n->args = list_make1(yyvsp[-3].node);
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-5];
					yyval.node = (Node *)n;
				}
    break;

  case 1192:
#line 7780 "gram.y"
    {
					/* various trim expressions are defined in SQL92
					 * - thomas 1997-07-19
					 */
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("btrim");
					n->args = yyvsp[-1].list;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-4];
					yyval.node = (Node *)n;
				}
    break;

  case 1193:
#line 7793 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("ltrim");
					n->args = yyvsp[-1].list;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-4];
					yyval.node = (Node *)n;
				}
    break;

  case 1194:
#line 7803 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("rtrim");
					n->args = yyvsp[-1].list;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-4];
					yyval.node = (Node *)n;
				}
    break;

  case 1195:
#line 7813 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("btrim");
					n->args = yyvsp[-1].list;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-3];
					yyval.node = (Node *)n;
				}
    break;

  case 1196:
#line 7823 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					A_Const *c = makeNode(A_Const);

					c->val.type = T_String;
					c->val.val.str = NameListToQuotedString(yyvsp[-1].list);

					n->funcname = SystemFuncName("convert_using");
					n->args = list_make2(yyvsp[-3].node, c);
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-5];
					yyval.node = (Node *)n;
				}
    break;

  case 1197:
#line 7838 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("convert");
					n->args = yyvsp[-1].list;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->location = yylsp[-3];
					yyval.node = (Node *)n;
				}
    break;

  case 1198:
#line 7848 "gram.y"
    {
					yyval.node = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", yyvsp[-3].node, yyvsp[-1].node, yylsp[-5]);
				}
    break;

  case 1199:
#line 7852 "gram.y"
    {
					CoalesceExpr *c = makeNode(CoalesceExpr);
					c->args = yyvsp[-1].list;
					yyval.node = (Node *)c;
				}
    break;

  case 1200:
#line 7858 "gram.y"
    {
					MinMaxExpr *v = makeNode(MinMaxExpr);
					v->args = yyvsp[-1].list;
					v->op = IS_GREATEST;
					yyval.node = (Node *)v;
				}
    break;

  case 1201:
#line 7865 "gram.y"
    {
					MinMaxExpr *v = makeNode(MinMaxExpr);
					v->args = yyvsp[-1].list;
					v->op = IS_LEAST;
					yyval.node = (Node *)v;
				}
    break;

  case 1202:
#line 7883 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 1203:
#line 7884 "gram.y"
    { yyval.list = NIL; }
    break;

  case 1204:
#line 7885 "gram.y"
    { yyval.list = lappend(yyvsp[-3].list, yyvsp[-1].node); }
    break;

  case 1205:
#line 7888 "gram.y"
    { yyval.ival = ANY_SUBLINK; }
    break;

  case 1206:
#line 7889 "gram.y"
    { yyval.ival = ANY_SUBLINK; }
    break;

  case 1207:
#line 7890 "gram.y"
    { yyval.ival = ALL_SUBLINK; }
    break;

  case 1208:
#line 7893 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1209:
#line 7894 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1210:
#line 7897 "gram.y"
    { yyval.str = "+"; }
    break;

  case 1211:
#line 7898 "gram.y"
    { yyval.str = "-"; }
    break;

  case 1212:
#line 7899 "gram.y"
    { yyval.str = "*"; }
    break;

  case 1213:
#line 7900 "gram.y"
    { yyval.str = "/"; }
    break;

  case 1214:
#line 7901 "gram.y"
    { yyval.str = "%"; }
    break;

  case 1215:
#line 7902 "gram.y"
    { yyval.str = "^"; }
    break;

  case 1216:
#line 7903 "gram.y"
    { yyval.str = "<"; }
    break;

  case 1217:
#line 7904 "gram.y"
    { yyval.str = ">"; }
    break;

  case 1218:
#line 7905 "gram.y"
    { yyval.str = "="; }
    break;

  case 1219:
#line 7909 "gram.y"
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
    break;

  case 1220:
#line 7911 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 1221:
#line 7916 "gram.y"
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
    break;

  case 1222:
#line 7918 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 1223:
#line 7923 "gram.y"
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
    break;

  case 1224:
#line 7925 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 1225:
#line 7927 "gram.y"
    { yyval.list = list_make1(makeString("~~")); }
    break;

  case 1226:
#line 7929 "gram.y"
    { yyval.list = list_make1(makeString("!~~")); }
    break;

  case 1227:
#line 7931 "gram.y"
    { yyval.list = list_make1(makeString("~~*")); }
    break;

  case 1228:
#line 7933 "gram.y"
    { yyval.list = list_make1(makeString("!~~*")); }
    break;

  case 1229:
#line 7945 "gram.y"
    {
					yyval.list = list_make1(yyvsp[0].node);
				}
    break;

  case 1230:
#line 7949 "gram.y"
    {
					yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
				}
    break;

  case 1231:
#line 7956 "gram.y"
    {
					A_Const *n = makeNode(A_Const);
					n->val.type = T_String;
					n->val.val.str = yyvsp[-2].str;
					yyval.list = list_make2((Node *) n, yyvsp[0].node);
				}
    break;

  case 1232:
#line 7962 "gram.y"
    { yyval.list = NIL; }
    break;

  case 1233:
#line 7966 "gram.y"
    {
					yyval.list = lappend(yyvsp[-2].list, yyvsp[0].typnam);
				}
    break;

  case 1234:
#line 7970 "gram.y"
    {
					yyval.list = list_make1(yyvsp[0].typnam);
				}
    break;

  case 1235:
#line 7976 "gram.y"
    {	yyval.list = list_make1(yyvsp[0].node);		}
    break;

  case 1236:
#line 7978 "gram.y"
    {	yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);	}
    break;

  case 1237:
#line 7982 "gram.y"
    {
					ArrayExpr *n = makeNode(ArrayExpr);
					n->elements = yyvsp[-1].list;
					yyval.node = (Node *)n;
				}
    break;

  case 1238:
#line 7988 "gram.y"
    {
					ArrayExpr *n = makeNode(ArrayExpr);
					n->elements = yyvsp[-1].list;
					yyval.node = (Node *)n;
				}
    break;

  case 1239:
#line 8000 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1240:
#line 8001 "gram.y"
    { yyval.str = "year"; }
    break;

  case 1241:
#line 8002 "gram.y"
    { yyval.str = "month"; }
    break;

  case 1242:
#line 8003 "gram.y"
    { yyval.str = "day"; }
    break;

  case 1243:
#line 8004 "gram.y"
    { yyval.str = "hour"; }
    break;

  case 1244:
#line 8005 "gram.y"
    { yyval.str = "minute"; }
    break;

  case 1245:
#line 8006 "gram.y"
    { yyval.str = "second"; }
    break;

  case 1246:
#line 8007 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1247:
#line 8017 "gram.y"
    {
					yyval.list = list_make4(yyvsp[-3].node, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node);
				}
    break;

  case 1248:
#line 8021 "gram.y"
    {
					yyval.list = list_make3(yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node);
				}
    break;

  case 1249:
#line 8028 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 1250:
#line 8034 "gram.y"
    { yyval.list = list_make2(yyvsp[0].node, yyvsp[-2].node); }
    break;

  case 1251:
#line 8035 "gram.y"
    { yyval.list = NIL; }
    break;

  case 1252:
#line 8052 "gram.y"
    {
					yyval.list = list_make3(yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node);
				}
    break;

  case 1253:
#line 8056 "gram.y"
    {
					/* not legal per SQL99, but might as well allow it */
					yyval.list = list_make3(yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].node);
				}
    break;

  case 1254:
#line 8061 "gram.y"
    {
					yyval.list = list_make2(yyvsp[-1].node, yyvsp[0].node);
				}
    break;

  case 1255:
#line 8065 "gram.y"
    {
					/*
					 * Since there are no cases where this syntax allows
					 * a textual FOR value, we forcibly cast the argument
					 * to int4.  This is a kluge to avoid surprising results
					 * when the argument is, say, int8.  It'd be better if
					 * there were not an implicit cast from int8 to text ...
					 */
					A_Const *n = makeNode(A_Const);
					n->val.type = T_Integer;
					n->val.val.ival = 1;
					yyval.list = list_make3(yyvsp[-1].node, (Node *) n,
									makeTypeCast(yyvsp[0].node, SystemTypeName("int4")));
				}
    break;

  case 1256:
#line 8080 "gram.y"
    {
					yyval.list = yyvsp[0].list;
				}
    break;

  case 1257:
#line 8084 "gram.y"
    { yyval.list = NIL; }
    break;

  case 1258:
#line 8088 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 1259:
#line 8091 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 1260:
#line 8094 "gram.y"
    { yyval.list = lappend(yyvsp[0].list, yyvsp[-2].node); }
    break;

  case 1261:
#line 8095 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 1262:
#line 8096 "gram.y"
    { yyval.list = yyvsp[0].list; }
    break;

  case 1263:
#line 8100 "gram.y"
    {
					SubLink *n = makeNode(SubLink);
					n->subselect = yyvsp[0].node;
					/* other fields will be filled later */
					yyval.node = (Node *)n;
				}
    break;

  case 1264:
#line 8106 "gram.y"
    { yyval.node = (Node *)yyvsp[-1].list; }
    break;

  case 1265:
#line 8117 "gram.y"
    {
					CaseExpr *c = makeNode(CaseExpr);
					c->casetype = InvalidOid; /* not analyzed yet */
					c->arg = (Expr *) yyvsp[-3].node;
					c->args = yyvsp[-2].list;
					c->defresult = (Expr *) yyvsp[-1].node;
					yyval.node = (Node *)c;
				}
    break;

  case 1266:
#line 8129 "gram.y"
    { yyval.list = list_make1(yyvsp[0].node); }
    break;

  case 1267:
#line 8130 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); }
    break;

  case 1268:
#line 8135 "gram.y"
    {
					CaseWhen *w = makeNode(CaseWhen);
					w->expr = (Expr *) yyvsp[-2].node;
					w->result = (Expr *) yyvsp[0].node;
					yyval.node = (Node *)w;
				}
    break;

  case 1269:
#line 8144 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 1270:
#line 8145 "gram.y"
    { yyval.node = NULL; }
    break;

  case 1271:
#line 8148 "gram.y"
    { yyval.node = yyvsp[0].node; }
    break;

  case 1272:
#line 8149 "gram.y"
    { yyval.node = NULL; }
    break;

  case 1273:
#line 8158 "gram.y"
    {
					yyval.node = makeColumnRef(yyvsp[0].str, NIL, yylsp[0]);
				}
    break;

  case 1274:
#line 8162 "gram.y"
    {
					yyval.node = makeColumnRef(yyvsp[-1].str, yyvsp[0].list, yylsp[-1]);
				}
    break;

  case 1275:
#line 8169 "gram.y"
    {
					yyval.node = (Node *) makeString(yyvsp[0].str);
				}
    break;

  case 1276:
#line 8173 "gram.y"
    {
					yyval.node = (Node *) makeString("*");
				}
    break;

  case 1277:
#line 8177 "gram.y"
    {
					A_Indices *ai = makeNode(A_Indices);
					ai->lidx = NULL;
					ai->uidx = yyvsp[-1].node;
					yyval.node = (Node *) ai;
				}
    break;

  case 1278:
#line 8184 "gram.y"
    {
					A_Indices *ai = makeNode(A_Indices);
					ai->lidx = yyvsp[-3].node;
					ai->uidx = yyvsp[-1].node;
					yyval.node = (Node *) ai;
				}
    break;

  case 1279:
#line 8193 "gram.y"
    { yyval.list = list_make1(yyvsp[0].node); }
    break;

  case 1280:
#line 8194 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); }
    break;

  case 1281:
#line 8198 "gram.y"
    { yyval.list = NIL; }
    break;

  case 1282:
#line 8199 "gram.y"
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); }
    break;

  case 1285:
#line 8214 "gram.y"
    { yyval.node = (Node *) yyvsp[0].node; }
    break;

  case 1286:
#line 8215 "gram.y"
    { yyval.node = (Node *) makeNode(SetToDefault); }
    break;

  case 1287:
#line 8219 "gram.y"
    { yyval.list = list_make1(yyvsp[0].node); }
    break;

  case 1288:
#line 8220 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
    break;

  case 1289:
#line 8228 "gram.y"
    { yyval.list = yyvsp[-1].list; }
    break;

  case 1290:
#line 8239 "gram.y"
    { yyval.list = list_make1(yyvsp[0].target); }
    break;

  case 1291:
#line 8240 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].target); }
    break;

  case 1292:
#line 8245 "gram.y"
    {
					yyval.target = makeNode(ResTarget);
					yyval.target->name = yyvsp[0].str;
					yyval.target->indirection = NIL;
					yyval.target->val = (Node *)yyvsp[-2].node;
					yyval.target->location = yylsp[-2];
				}
    break;

  case 1293:
#line 8253 "gram.y"
    {
					yyval.target = makeNode(ResTarget);
					yyval.target->name = NULL;
					yyval.target->indirection = NIL;
					yyval.target->val = (Node *)yyvsp[0].node;
					yyval.target->location = yylsp[0];
				}
    break;

  case 1294:
#line 8261 "gram.y"
    {
					ColumnRef *n = makeNode(ColumnRef);
					n->fields = list_make1(makeString("*"));
					n->location = yylsp[0];

					yyval.target = makeNode(ResTarget);
					yyval.target->name = NULL;
					yyval.target->indirection = NIL;
					yyval.target->val = (Node *)n;
					yyval.target->location = yylsp[0];
				}
    break;

  case 1295:
#line 8282 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1296:
#line 8283 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1297:
#line 8287 "gram.y"
    { yyval.list = list_make1(yyvsp[0].range); }
    break;

  case 1298:
#line 8288 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].range); }
    break;

  case 1299:
#line 8300 "gram.y"
    {
					yyval.range = makeNode(RangeVar);
					yyval.range->catalogname = NULL;
					yyval.range->schemaname = NULL;
					yyval.range->relname = yyvsp[0].str;
				}
    break;

  case 1300:
#line 8307 "gram.y"
    {
					check_qualified_name(yyvsp[0].list);
					yyval.range = makeNode(RangeVar);
					switch (list_length(yyvsp[0].list))
					{
						case 1:
							yyval.range->catalogname = NULL;
							yyval.range->schemaname = yyvsp[-1].str;
							yyval.range->relname = strVal(linitial(yyvsp[0].list));
							break;
						case 2:
							yyval.range->catalogname = yyvsp[-1].str;
							yyval.range->schemaname = strVal(linitial(yyvsp[0].list));
							yyval.range->relname = strVal(lsecond(yyvsp[0].list));
							break;
						default:
							ereport(ERROR,
									(errcode(ERRCODE_SYNTAX_ERROR),
									 errmsg("improper qualified name (too many dotted names): %s",
											NameListToString(lcons(makeString(yyvsp[-1].str), yyvsp[0].list)))));
							break;
					}
				}
    break;

  case 1301:
#line 8333 "gram.y"
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
    break;

  case 1302:
#line 8335 "gram.y"
    { yyval.list = lappend(yyvsp[-2].list, makeString(yyvsp[0].str)); }
    break;

  case 1303:
#line 8339 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1304:
#line 8342 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1305:
#line 8345 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1306:
#line 8347 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1307:
#line 8349 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1308:
#line 8351 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1309:
#line 8362 "gram.y"
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
    break;

  case 1310:
#line 8364 "gram.y"
    { yyval.list = check_func_name(lcons(makeString(yyvsp[-1].str), yyvsp[0].list)); }
    break;

  case 1311:
#line 8372 "gram.y"
    {
					A_Const *n = makeNode(A_Const);
					n->val.type = T_Integer;
					n->val.val.ival = yyvsp[0].ival;
					yyval.node = (Node *)n;
				}
    break;

  case 1312:
#line 8379 "gram.y"
    {
					A_Const *n = makeNode(A_Const);
					n->val.type = T_Float;
					n->val.val.str = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 1313:
#line 8386 "gram.y"
    {
					A_Const *n = makeNode(A_Const);
					n->val.type = T_String;
					n->val.val.str = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 1314:
#line 8393 "gram.y"
    {
					A_Const *n = makeNode(A_Const);
					n->val.type = T_BitString;
					n->val.val.str = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 1315:
#line 8400 "gram.y"
    {
					/* This is a bit constant per SQL99:
					 * Without Feature F511, "BIT data type",
					 * a <general literal> shall not be a
					 * <bit string literal> or a <hex string literal>.
					 */
					A_Const *n = makeNode(A_Const);
					n->val.type = T_BitString;
					n->val.val.str = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 1316:
#line 8412 "gram.y"
    {
					A_Const *n = makeNode(A_Const);
					n->typename = yyvsp[-1].typnam;
					n->val.type = T_String;
					n->val.val.str = yyvsp[0].str;
					yyval.node = (Node *)n;
				}
    break;

  case 1317:
#line 8420 "gram.y"
    {
					A_Const *n = makeNode(A_Const);
					n->typename = yyvsp[-2].typnam;
					n->val.type = T_String;
					n->val.val.str = yyvsp[-1].str;
					/* precision is not specified, but fields may be... */
					if (yyvsp[0].ival != INTERVAL_FULL_RANGE)
						n->typename->typmod = INTERVAL_TYPMOD(INTERVAL_FULL_PRECISION, yyvsp[0].ival);
					yyval.node = (Node *)n;
				}
    break;

  case 1318:
#line 8431 "gram.y"
    {
					A_Const *n = makeNode(A_Const);
					n->typename = yyvsp[-5].typnam;
					n->val.type = T_String;
					n->val.val.str = yyvsp[-1].str;
					/* precision specified, and fields may be... */
					if (yyvsp[-3].ival < 0)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("INTERVAL(%d) precision must not be negative",
										yyvsp[-3].ival)));
					if (yyvsp[-3].ival > MAX_INTERVAL_PRECISION)
					{
						ereport(WARNING,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("INTERVAL(%d) precision reduced to maximum allowed, %d",
										yyvsp[-3].ival, MAX_INTERVAL_PRECISION)));
						yyvsp[-3].ival = MAX_INTERVAL_PRECISION;
					}
					n->typename->typmod = INTERVAL_TYPMOD(yyvsp[-3].ival, yyvsp[0].ival);
					yyval.node = (Node *)n;
				}
    break;

  case 1319:
#line 8454 "gram.y"
    {
					yyval.node = (Node *)makeBoolAConst(TRUE);
				}
    break;

  case 1320:
#line 8458 "gram.y"
    {
					yyval.node = (Node *)makeBoolAConst(FALSE);
				}
    break;

  case 1321:
#line 8462 "gram.y"
    {
					A_Const *n = makeNode(A_Const);
					n->val.type = T_Null;
					yyval.node = (Node *)n;
				}
    break;

  case 1322:
#line 8469 "gram.y"
    { yyval.ival = yyvsp[0].ival; }
    break;

  case 1323:
#line 8470 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1324:
#line 8471 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1325:
#line 8473 "gram.y"
    { yyval.ival = yyvsp[0].ival; }
    break;

  case 1326:
#line 8474 "gram.y"
    { yyval.ival = - yyvsp[0].ival; }
    break;

  case 1327:
#line 8490 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1328:
#line 8491 "gram.y"
    { yyval.str = pstrdup(yyvsp[0].keyword); }
    break;

  case 1329:
#line 8492 "gram.y"
    { yyval.str = pstrdup(yyvsp[0].keyword); }
    break;

  case 1330:
#line 8497 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1331:
#line 8498 "gram.y"
    { yyval.str = pstrdup(yyvsp[0].keyword); }
    break;

  case 1332:
#line 8504 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1333:
#line 8505 "gram.y"
    { yyval.str = pstrdup(yyvsp[0].keyword); }
    break;

  case 1334:
#line 8506 "gram.y"
    { yyval.str = pstrdup(yyvsp[0].keyword); }
    break;

  case 1335:
#line 8512 "gram.y"
    { yyval.str = yyvsp[0].str; }
    break;

  case 1336:
#line 8513 "gram.y"
    { yyval.str = pstrdup(yyvsp[0].keyword); }
    break;

  case 1337:
#line 8514 "gram.y"
    { yyval.str = pstrdup(yyvsp[0].keyword); }
    break;

  case 1338:
#line 8515 "gram.y"
    { yyval.str = pstrdup(yyvsp[0].keyword); }
    break;

  case 1339:
#line 8516 "gram.y"
    { yyval.str = pstrdup(yyvsp[0].keyword); }
    break;

  case 1680:
#line 8912 "gram.y"
    {
					if (QueryIsRule)
						yyval.str = "*OLD*";
					else
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("OLD used in query that is not in a rule")));
				}
    break;

  case 1681:
#line 8921 "gram.y"
    {
					if (QueryIsRule)
						yyval.str = "*NEW*";
					else
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("NEW used in query that is not in a rule")));
				}
    break;


    }

/* Line 991 of yacc.c.  */
#line 22385 "y.tab.c"

  yyvsp -= yylen;
  yyssp -= yylen;
  yylsp -= yylen;

  YY_STACK_PRINT (yyss, yyssp);

  *++yyvsp = yyval;
  *++yylsp = yyloc;

  /* Now `shift' the result of the reduction.  Determine what state
     that goes to, based on the state we popped back to and the rule
     number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTOKENS];

  goto yynewstate;


/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
  /* If not already recovering from an error, report this error.  */
  if (!yyerrstatus)
    {
      ++yynerrs;
#if YYERROR_VERBOSE
      yyn = yypact[yystate];

      if (YYPACT_NINF < yyn && yyn < YYLAST)
	{
	  YYSIZE_T yysize = 0;
	  int yytype = YYTRANSLATE (yychar);
	  char *yymsg;
	  int yyx, yycount;

	  yycount = 0;
	  /* Start YYX at -YYN if negative to avoid negative indexes in
	     YYCHECK.  */
	  for (yyx = yyn < 0 ? -yyn : 0;
	       yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
	    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
	      yysize += yystrlen (yytname[yyx]) + 15, yycount++;
	  yysize += yystrlen ("syntax error, unexpected ") + 1;
	  yysize += yystrlen (yytname[yytype]);
	  yymsg = (char *) YYSTACK_ALLOC (yysize);
	  if (yymsg != 0)
	    {
	      char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
	      yyp = yystpcpy (yyp, yytname[yytype]);

	      if (yycount < 5)
		{
		  yycount = 0;
		  for (yyx = yyn < 0 ? -yyn : 0;
		       yyx < (int) (sizeof (yytname) / sizeof (char *));
		       yyx++)
		    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
		      {
			const char *yyq = ! yycount ? ", expecting " : " or ";
			yyp = yystpcpy (yyp, yyq);
			yyp = yystpcpy (yyp, yytname[yyx]);
			yycount++;
		      }
		}
	      yyerror (yymsg);
	      YYSTACK_FREE (yymsg);
	    }
	  else
	    yyerror ("syntax error; also virtual memory exhausted");
	}
      else
#endif /* YYERROR_VERBOSE */
	yyerror ("syntax error");
    }

  yylerrsp = yylsp;

  if (yyerrstatus == 3)
    {
      /* If just tried and failed to reuse lookahead token after an
	 error, discard it.  */

      /* Return failure if at end of input.  */
      if (yychar == YYEOF)
        {
	  /* Pop the error token.  */
          YYPOPSTACK;
	  /* Pop the rest of the stack.  */
	  while (yyss < yyssp)
	    {
	      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
	      yydestruct (yystos[*yyssp], yyvsp, yylsp);
	      YYPOPSTACK;
	    }
	  YYABORT;
        }

      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
      yydestruct (yytoken, &yylval, &yylloc);
      yychar = YYEMPTY;
      *++yylerrsp = yylloc;
    }

  /* Else will try to reuse lookahead token after shifting the error
     token.  */
  goto yyerrlab2;


/*----------------------------------------------------.
| yyerrlab1 -- error raised explicitly by an action.  |
`----------------------------------------------------*/
yyerrlab1:

  /* Suppress GCC warning that yyerrlab1 is unused when no action
     invokes YYERROR.  */
#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
  __attribute__ ((__unused__))
#endif

  yylerrsp = yylsp;
  *++yylerrsp = yyloc;
  goto yyerrlab2;


/*---------------------------------------------------------------.
| yyerrlab2 -- pop states until the error token can be shifted.  |
`---------------------------------------------------------------*/
yyerrlab2:
  yyerrstatus = 3;	/* Each real token shifted decrements this.  */

  for (;;)
    {
      yyn = yypact[yystate];
      if (yyn != YYPACT_NINF)
	{
	  yyn += YYTERROR;
	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
	    {
	      yyn = yytable[yyn];
	      if (0 < yyn)
		break;
	    }
	}

      /* Pop the current state because it cannot handle the error token.  */
      if (yyssp == yyss)
	YYABORT;

      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
      yydestruct (yystos[yystate], yyvsp, yylsp);
      yyvsp--;
      yystate = *--yyssp;
      yylsp--;
      YY_STACK_PRINT (yyss, yyssp);
    }

  if (yyn == YYFINAL)
    YYACCEPT;

  YYDPRINTF ((stderr, "Shifting error token, "));

  *++yyvsp = yylval;
  YYLLOC_DEFAULT (yyloc, yylsp, (yylerrsp - yylsp));
  *++yylsp = yyloc;

  yystate = yyn;
  goto yynewstate;


/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here.  |
`-------------------------------------*/
yyacceptlab:
  yyresult = 0;
  goto yyreturn;

/*-----------------------------------.
| yyabortlab -- YYABORT comes here.  |
`-----------------------------------*/
yyabortlab:
  yyresult = 1;
  goto yyreturn;

#ifndef yyoverflow
/*----------------------------------------------.
| yyoverflowlab -- parser overflow comes here.  |
`----------------------------------------------*/
yyoverflowlab:
  yyerror ("parser stack overflow");
  yyresult = 2;
  /* Fall through.  */
#endif

yyreturn:
#ifndef yyoverflow
  if (yyss != yyssa)
    YYSTACK_FREE (yyss);
#endif
  return yyresult;
}


#line 8931 "gram.y"


static Node *
makeColumnRef(char *relname, List *indirection, int location)
{
	/*
	 * Generate a ColumnRef node, with an A_Indirection node added if there
	 * is any subscripting in the specified indirection list.  However,
	 * any field selection at the start of the indirection list must be
	 * transposed into the "fields" part of the ColumnRef node.
	 */
	ColumnRef  *c = makeNode(ColumnRef);
	int		nfields = 0;
	ListCell *l;

	c->location = location;
	foreach(l, indirection)
	{
		if (IsA(lfirst(l), A_Indices))
		{
			A_Indirection *i = makeNode(A_Indirection);

			if (nfields == 0)
			{
				/* easy case - all indirection goes to A_Indirection */
				c->fields = list_make1(makeString(relname));
				i->indirection = indirection;
			}
			else
			{
				/* got to split the list in two */
				i->indirection = list_copy_tail(indirection, nfields);
				indirection = list_truncate(indirection, nfields);
				c->fields = lcons(makeString(relname), indirection);
			}
			i->arg = (Node *) c;
			return (Node *) i;
		}
		nfields++;
	}
	/* No subscripting, so all indirection gets added to field list */
	c->fields = lcons(makeString(relname), indirection);
	return (Node *) c;
}

static Node *
makeTypeCast(Node *arg, TypeName *typename)
{
	/*
	 * Simply generate a TypeCast node.
	 *
	 * Earlier we would determine whether an A_Const would
	 * be acceptable, however Domains require coerce_type()
	 * to process them -- applying constraints as required.
	 */
	TypeCast *n = makeNode(TypeCast);
	n->arg = arg;
	n->typename = typename;
	return (Node *) n;
}

static Node *
makeStringConst(char *str, TypeName *typename)
{
	A_Const *n = makeNode(A_Const);

	n->val.type = T_String;
	n->val.val.str = str;
	n->typename = typename;

	return (Node *)n;
}

static Node *
makeIntConst(int val)
{
	A_Const *n = makeNode(A_Const);
	n->val.type = T_Integer;
	n->val.val.ival = val;
	n->typename = SystemTypeName("int4");

	return (Node *)n;
}

static Node *
makeFloatConst(char *str)
{
	A_Const *n = makeNode(A_Const);

	n->val.type = T_Float;
	n->val.val.str = str;
	n->typename = SystemTypeName("float8");

	return (Node *)n;
}

static Node *
makeAConst(Value *v)
{
	Node *n;

	switch (v->type)
	{
		case T_Float:
			n = makeFloatConst(v->val.str);
			break;

		case T_Integer:
			n = makeIntConst(v->val.ival);
			break;

		case T_String:
		default:
			n = makeStringConst(v->val.str, NULL);
			break;
	}

	return n;
}

/* makeBoolAConst()
 * Create an A_Const node and initialize to a boolean constant.
 */
static A_Const *
makeBoolAConst(bool state)
{
	A_Const *n = makeNode(A_Const);
	n->val.type = T_String;
	n->val.val.str = (state? "t": "f");
	n->typename = SystemTypeName("bool");
	return n;
}

/* makeOverlaps()
 * Create and populate a FuncCall node to support the OVERLAPS operator.
 */
static FuncCall *
makeOverlaps(List *largs, List *rargs, int location)
{
	FuncCall *n = makeNode(FuncCall);

	n->funcname = SystemFuncName("overlaps");
	if (list_length(largs) == 1)
		largs = lappend(largs, largs);
	else if (list_length(largs) != 2)
		ereport(ERROR,
				(errcode(ERRCODE_SYNTAX_ERROR),
				 errmsg("wrong number of parameters on left side of OVERLAPS expression")));
	if (list_length(rargs) == 1)
		rargs = lappend(rargs, rargs);
	else if (list_length(rargs) != 2)
		ereport(ERROR,
				(errcode(ERRCODE_SYNTAX_ERROR),
				 errmsg("wrong number of parameters on right side of OVERLAPS expression")));
	n->args = list_concat(largs, rargs);
	n->agg_star = FALSE;
	n->agg_distinct = FALSE;
	n->location = location;
	return n;
}

/* check_qualified_name --- check the result of qualified_name production
 *
 * It's easiest to let the grammar production for qualified_name allow
 * subscripts and '*', which we then must reject here.
 */
static void
check_qualified_name(List *names)
{
	ListCell   *i;

	foreach(i, names)
	{
		if (!IsA(lfirst(i), String))
			yyerror("syntax error");
		else if (strcmp(strVal(lfirst(i)), "*") == 0)
			yyerror("syntax error");
	}
}

/* check_func_name --- check the result of func_name production
 *
 * It's easiest to let the grammar production for func_name allow subscripts
 * and '*', which we then must reject here.
 */
static List *
check_func_name(List *names)
{
	ListCell   *i;

	foreach(i, names)
	{
		if (!IsA(lfirst(i), String))
			yyerror("syntax error");
		else if (strcmp(strVal(lfirst(i)), "*") == 0)
			yyerror("syntax error");
	}
	return names;
}

/* extractArgTypes()
 * Given a list of FunctionParameter nodes, extract a list of just the
 * argument types (TypeNames) for input parameters only.  This is what
 * is needed to look up an existing function, which is what is wanted by
 * the productions that use this call.
 */
static List *
extractArgTypes(List *parameters)
{
	List	   *result = NIL;
	ListCell   *i;

	foreach(i, parameters)
	{
		FunctionParameter *p = (FunctionParameter *) lfirst(i);

		if (p->mode != FUNC_PARAM_OUT)			/* keep if IN or INOUT */
			result = lappend(result, p->argType);
	}
	return result;
}

/* findLeftmostSelect()
 * Find the leftmost component SelectStmt in a set-operation parsetree.
 */
static SelectStmt *
findLeftmostSelect(SelectStmt *node)
{
	while (node && node->op != SETOP_NONE)
		node = node->larg;
	Assert(node && IsA(node, SelectStmt) && node->larg == NULL);
	return node;
}

/* insertSelectOptions()
 * Insert ORDER BY, etc into an already-constructed SelectStmt.
 *
 * This routine is just to avoid duplicating code in SelectStmt productions.
 */
static void
insertSelectOptions(SelectStmt *stmt,
					List *sortClause, List *lockingClause,
					Node *limitOffset, Node *limitCount)
{
	/*
	 * Tests here are to reject constructs like
	 *	(SELECT foo ORDER BY bar) ORDER BY baz
	 */
	if (sortClause)
	{
		if (stmt->sortClause)
			ereport(ERROR,
					(errcode(ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple ORDER BY clauses not allowed")));
		stmt->sortClause = sortClause;
	}
	/* We can handle multiple locking clauses, though */
	stmt->lockingClause = list_concat(stmt->lockingClause, lockingClause);
	if (limitOffset)
	{
		if (stmt->limitOffset)
			ereport(ERROR,
					(errcode(ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple OFFSET clauses not allowed")));
		stmt->limitOffset = limitOffset;
	}
	if (limitCount)
	{
		if (stmt->limitCount)
			ereport(ERROR,
					(errcode(ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple LIMIT clauses not allowed")));
		stmt->limitCount = limitCount;
	}
}

static Node *
makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg)
{
	SelectStmt *n = makeNode(SelectStmt);

	n->op = op;
	n->all = all;
	n->larg = (SelectStmt *) larg;
	n->rarg = (SelectStmt *) rarg;
	return (Node *) n;
}

/* SystemFuncName()
 * Build a properly-qualified reference to a built-in function.
 */
List *
SystemFuncName(char *name)
{
	return list_make2(makeString("pg_catalog"), makeString(name));
}

/* SystemTypeName()
 * Build a properly-qualified reference to a built-in type.
 *
 * typmod is defaulted, but may be changed afterwards by caller.
 */
TypeName *
SystemTypeName(char *name)
{
	TypeName   *n = makeNode(TypeName);

	n->names = list_make2(makeString("pg_catalog"), makeString(name));
	n->typmod = -1;
	n->location = -1;
	return n;
}

/* parser_init()
 * Initialize to parse one query string
 */
void
parser_init(void)
{
	QueryIsRule = FALSE;
}

/* exprIsNullConstant()
 * Test whether an a_expr is a plain NULL constant or not.
 */
bool
exprIsNullConstant(Node *arg)
{
	if (arg && IsA(arg, A_Const))
	{
		A_Const *con = (A_Const *) arg;

		if (con->val.type == T_Null &&
			con->typename == NULL)
			return TRUE;
	}
	return FALSE;
}

/* doNegate()
 * Handle negation of a numeric constant.
 *
 * Formerly, we did this here because the optimizer couldn't cope with
 * indexquals that looked like "var = -4" --- it wants "var = const"
 * and a unary minus operator applied to a constant didn't qualify.
 * As of Postgres 7.0, that problem doesn't exist anymore because there
 * is a constant-subexpression simplifier in the optimizer.  However,
 * there's still a good reason for doing this here, which is that we can
 * postpone committing to a particular internal representation for simple
 * negative constants.	It's better to leave "-123.456" in string form
 * until we know what the desired type is.
 */
static Node *
doNegate(Node *n, int location)
{
	if (IsA(n, A_Const))
	{
		A_Const *con = (A_Const *)n;

		if (con->val.type == T_Integer)
		{
			con->val.val.ival = -con->val.val.ival;
			return n;
		}
		if (con->val.type == T_Float)
		{
			doNegateFloat(&con->val);
			return n;
		}
	}

	return (Node *) makeSimpleA_Expr(AEXPR_OP, "-", NULL, n, location);
}

static void
doNegateFloat(Value *v)
{
	char   *oldval = v->val.str;

	Assert(IsA(v, Float));
	if (*oldval == '+')
		oldval++;
	if (*oldval == '-')
		v->val.str = oldval+1;	/* just strip the '-' */
	else
	{
		char   *newval = (char *) palloc(strlen(oldval) + 2);

		*newval = '-';
		strcpy(newval+1, oldval);
		v->val.str = newval;
	}
}

/*
 * Must undefine base_yylex before including scan.c, since we want it
 * to create the function base_yylex not filtered_base_yylex.
 */
#undef base_yylex

#include "scan.c"

